<property name="window_position">GTK_WIN_POS_CENTER</property>
<property name="skip_taskbar_hint">True</property>
<property name="skip_pager_hint">True</property>
- <property name="allow-grow">False</property>
+ <property name="resizable">False</property>
<property name="events">GDK_STRUCTURE_MASK</property>
<signal handler="preview_configure_cb" name="configure-event"/>
<signal handler="preview_window_delete_cb" name="delete_event"/>
<child>
- <object class="GtkHBox" id="hbox2">
+ <object class="GtkAlignment" id="alignment111">
<property name="visible">True</property>
- <property name="spacing">4</property>
+ <property name="xalign">.5</property>
+ <property name="yalign">.5</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
<child>
- <object class="GtkVBox" id="vbox40">
+ <object class="GtkDrawingArea" id="preview_image">
<property name="visible">True</property>
- <property name="spacing">5</property>
- <child>
- <object class="GtkAlignment" id="alignment52">
- <property name="visible">True</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <property name="top_padding">2</property>
- <property name="bottom_padding">2</property>
- <property name="left_padding">2</property>
- <property name="right_padding">2</property>
- <child>
- <object class="GtkDrawingArea" id="preview_image">
- <property name="visible">True</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_LEAVE_NOTIFY_MASK</property>
- <property name="app_paintable">True</property>
- <signal name="motion-notify-event" handler="preview_motion_cb"/>
- <signal name="leave-notify-event" handler="preview_leave_cb"/>
- </object>
- </child>
- </object>
- <packing>
- <property name="position">0</property>
- </packing>
- </child>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_LEAVE_NOTIFY_MASK</property>
+ <property name="app_paintable">True</property>
+ <signal name="motion-notify-event" handler="preview_motion_cb"/>
+ <signal name="leave-notify-event" handler="preview_leave_cb"/>
</object>
<packing>
- <property name="position">0</property>
</packing>
</child>
- <child>
- <object class="GtkVSeparator" id="vseparator2">
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">1</property>
- </packing>
- </child>
-
</object>
</child>
</object>
<property name="position">0</property>
</packing>
</child>
+ <child>
+ <object class="GtkToggleButton" id="preview_fullscreen">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="tooltip-text" translatable="yes">View Fullscreen Preview</property>
+ <property name="label" translatable="yes">Fullscreen</property>
+ <signal handler="fullscreen_clicked_cb" name="clicked"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
<child>
<object class="GtkButton" id="settings_button">
<property name="visible">True</property>
</object>
<packing>
<property name="expand">False</property>
- <property name="position">1</property>
+ <property name="position">2</property>
</packing>
</child>
</object>
if (x >= 0 && y >= 0)
gtk_window_move(GTK_WINDOW(widget), x, y);
set_visible(widget, active);
+ // The window may be hidden behind the main window, raise it
+ if (active)
+ gtk_window_present(GTK_WINDOW(widget));
}
}
gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(toggle), !active);
}
+static void
+go_full(signal_user_data_t *ud)
+{
+ GtkWindow *window;
+ window = GTK_WINDOW(GHB_WIDGET (ud->builder, "preview_window"));
+ gtk_window_fullscreen(window);
+}
+
+G_MODULE_EXPORT void
+fullscreen_clicked_cb(GtkWidget *toggle, signal_user_data_t *ud)
+{
+ gboolean active;
+ GtkWindow *window;
+
+ g_debug("fullscreen_clicked_cb()");
+ ghb_widget_to_setting (ud->settings, toggle);
+ ghb_check_dependency(ud, toggle);
+ const gchar *name = gtk_widget_get_name(toggle);
+ ghb_pref_save(ud->settings, name);
+
+ window = GTK_WINDOW(GHB_WIDGET (ud->builder, "preview_window"));
+ active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toggle));
+ if (active)
+ {
+ gtk_window_set_resizable(window, TRUE);
+ gtk_button_set_label(GTK_BUTTON(toggle), "Windowed");
+ // Changing resizable property doesn't take effect immediately
+ // need to delay fullscreen till after this callback returns
+ // to mainloop
+ g_idle_add((GSourceFunc)go_full, ud);
+ }
+ else
+ {
+ gtk_window_unfullscreen(window);
+ gtk_window_set_resizable(window, FALSE);
+ gtk_button_set_label(GTK_BUTTON(toggle), "Fullscreen");
+ }
+}
+
G_MODULE_EXPORT void
picture_settings_alt2_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
{
bval = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
value = ghb_boolean_value_new(bval);
}
+ else if (type == GTK_TYPE_TOGGLE_BUTTON)
+ {
+ g_debug("\ttoggle_button");
+ gboolean bval;
+ bval = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
+ value = ghb_boolean_value_new(bval);
+ }
else if (type == GTK_TYPE_TOGGLE_ACTION)
{
g_debug("\ttoggle action");
g_debug("check button");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), ival);
}
+ else if (type == GTK_TYPE_TOGGLE_BUTTON)
+ {
+ g_debug("toggle button");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), ival);
+ }
else if (type == GTK_TYPE_TOGGLE_ACTION)
{
g_debug("toggle action");