save windows position and visibility

master
Steffen Pohle 3 years ago
parent 2ccc66a359
commit f8a576e676

@ -111,7 +111,7 @@ void Configuration::SaveConfig(std::string filename) {
// //
// save windows position // save windows position
for (i = 0; i < 5; i++) { for (i = 0; i < 5; i++) {
int x, y, w, h; int x, y, w, h, show;
string name; string name;
switch (i) { switch (i) {
@ -135,6 +135,8 @@ void Configuration::SaveConfig(std::string filename) {
GtkWidget *wnd = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), name.c_str())); GtkWidget *wnd = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), name.c_str()));
if (wnd) { if (wnd) {
g_object_get (wnd, "visible", &show, NULL);
gtk_widget_show (wnd);
gtk_window_get_position (GTK_WINDOW(wnd), &x, &y); gtk_window_get_position (GTK_WINDOW(wnd), &x, &y);
gtk_window_get_size (GTK_WINDOW(wnd), &w, &h); gtk_window_get_size (GTK_WINDOW(wnd), &w, &h);
@ -142,6 +144,7 @@ void Configuration::SaveConfig(std::string filename) {
jp.AddObject(name+"_y", y); jp.AddObject(name+"_y", y);
jp.AddObject(name+"_w", w); jp.AddObject(name+"_w", w);
jp.AddObject(name+"_h", h); jp.AddObject(name+"_h", h);
jp.AddObject(name+"_show", show);
} }
} }
@ -250,7 +253,7 @@ void Configuration::LoadConfig(std::string filename) {
// //
// load windows position // load windows position
for (i = 0; i < 5; i++) { for (i = 0; i < 5; i++) {
int x, y, w, h; int x, y, w, h, show;
string name; string name;
switch (i) { switch (i) {
@ -272,13 +275,15 @@ void Configuration::LoadConfig(std::string filename) {
} }
if (jp.GetValueInt(name+"_x", &x) && jp.GetValueInt(name+"_y", &y) && if (jp.GetValueInt(name+"_x", &x) && jp.GetValueInt(name+"_y", &y) &&
jp.GetValueInt(name+"_w", &w) && jp.GetValueInt(name+"_h", &h)) { jp.GetValueInt(name+"_w", &w) && jp.GetValueInt(name+"_h", &h) &&
jp.GetValueInt(name+"_show", &show)) {
GtkWidget *wnd = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), name.c_str())); GtkWidget *wnd = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), name.c_str()));
if (wnd) { if (wnd) {
printf ("%s:%d window '%s' set geometry %d,%d : %d x %d\n", __FILE__, __LINE__, name.c_str(), x, y, w, h); printf ("%s:%d window '%s' set geometry %d,%d : %d x %d\n", __FILE__, __LINE__, name.c_str(), x, y, w, h);
gtk_window_move (GTK_WINDOW(wnd), x, y); gtk_window_move (GTK_WINDOW(wnd), x, y);
gtk_window_resize (GTK_WINDOW(wnd), w, h); gtk_window_resize (GTK_WINDOW(wnd), w, h);
if (show) gtk_widget_show(wnd);
} }
} }
} }

@ -59,14 +59,10 @@ void cb_window_show (GtkWidget *widget, gpointer data) {
GtkWidget *rboff = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "detect-pos-cboff")); GtkWidget *rboff = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "detect-pos-cboff"));
GtkWidget *rbcrossc = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "detect-type-indet2")); GtkWidget *rbcrossc = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "detect-type-indet2"));
GtkWidget *win_detect = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "window-detect")); // GtkWidget *win_detect = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "window-detect"));
GtkWidget *win_input = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "window-input")); // GtkWidget *win_input = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "window-input"));
GtkWidget *win_output = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "window-output")); // GtkWidget *win_output = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "window-output"));
GtkWidget *win_histogram = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "window-histogram")); // GtkWidget *win_histogram = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "window-histogram"));
gtk_widget_show (win_detect);
gtk_widget_show (win_input);
gtk_widget_show (win_output);
gtk_widget_show (win_histogram);
// changing the value, will cause the 'change' event to be triggered // changing the value, will cause the 'change' event to be triggered
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rboff), true); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rboff), true);
@ -91,6 +87,11 @@ void cb_window_show (GtkWidget *widget, gpointer data) {
// //
// update the input video controls every 2 seconds. // update the input video controls every 2 seconds.
g_timeout_add(2000, videoctrl_update, NULL); g_timeout_add(2000, videoctrl_update, NULL);
// gtk_widget_show (win_detect);
// gtk_widget_show (win_input);
// gtk_widget_show (win_output);
// gtk_widget_show (win_histogram);
}; };

@ -596,13 +596,24 @@
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkButton" id="btn_inputflat"> <object class="GtkComboBoxText">
<property name="label" translatable="yes">Flat</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">False</property>
<property name="receives-default">True</property> <property name="has-frame">False</property>
<signal name="activate" handler="cb_input_btnflat" swapped="no"/> <property name="button-sensitivity">on</property>
<signal name="pressed" handler="cb_input_btnflat" swapped="no"/> <property name="has-entry">True</property>
<items>
<item translatable="yes">FLAT</item>
<item translatable="yes">was anderes</item>
</items>
<child internal-child="entry">
<object class="GtkEntry">
<property name="can-focus">False</property>
<property name="editable">False</property>
<property name="width-chars">6</property>
<property name="text" translatable="yes">FLAT</property>
</object>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>

Loading…
Cancel
Save