monitor settings area improvements

pull/28/head
parent 3577361ac7
commit c7c6df2a2c

@ -7,6 +7,17 @@ void on_subwindow_close(GtkWidget *self)
gtk_widget_destroy(gtk_widget_get_toplevel(self));
}
void on_resized(GtkWidget *window, GdkEventConfigure *event){
float time_passed = (float)clock()/(float)CLOCKS_PER_SEC;
if (time_passed>2){
int width = gdk_window_get_width(gtk_widget_get_window(videoconfig.pack_box));
int children_width = 138*g_list_length(gtk_container_get_children(GTK_CONTAINER((GtkWidget*)videoconfig.monitor_output_layers->first->data)));
if (width<children_width||width>children_width+150)
yon_monitor_view_draw_all();
}
}
void on_monitor_config_save(GtkWidget *self, monitor_edit_window *window){
monitorconfig *config = yon_dictionary_get_data(window->config,monitorconfig*);
if (gtk_combo_box_get_active(GTK_COMBO_BOX(window->templateMonitorConfigurationPortCombo))==0){
@ -741,14 +752,16 @@ void yon_monitor_window_update(monitor_edit_window *window){
/**void yon_monitor_view_draw_all(GtkWidget *cnt)
* [EN]
*/
void yon_monitor_view_draw_all(GtkWidget *cnt){
void yon_monitor_view_draw_all(){
monitor_view dict=NULL;
GtkWidget *container=NULL;
if(!container&&cnt) container=cnt;
if(videoconfig.monitor_visuals){
for_dictionaries(dict,videoconfig.monitor_visuals){
monitor_window *window = yon_dictionary_get_data(dict,monitor_window*);
if (!container) container = gtk_widget_get_parent(window->templateMonitorscreenOverlay);
container = gtk_widget_get_parent(window->templateMonitorscreenOverlay);
if(container){
g_object_ref(G_OBJECT(window->templateMonitorscreenOverlay));
gtk_container_remove(GTK_CONTAINER(container),window->templateMonitorscreenOverlay);
@ -764,44 +777,36 @@ void yon_monitor_view_draw_all(GtkWidget *cnt){
}
free(boxes);
videoconfig.monitor_output_layers=NULL;
int overall_width=10;
int overall_width=0;
yon_dictionary_add_or_create_if_exists_with_data(videoconfig.monitor_output_layers,"Box",gtk_box_new(GTK_ORIENTATION_HORIZONTAL,0));
gtk_box_pack_start(GTK_BOX(videoconfig.pack_box),(GtkWidget*)videoconfig.monitor_output_layers->data,0,0,0);
gtk_style_context_add_class(gtk_widget_get_style_context((GtkWidget*)videoconfig.monitor_output_layers->data),"primary-toolbar");
gtk_box_pack_start(GTK_BOX(videoconfig.pack_box),&*(GtkWidget*)videoconfig.monitor_output_layers->data,0,0,0);
gtk_widget_show((GtkWidget*)videoconfig.monitor_output_layers->data);
for_dictionaries(dict,videoconfig.monitor_visuals){
monitor_window *window = yon_dictionary_get_data(dict,monitor_window*);
if(dict->first==dict) {}
else {
overall_width+=150;
gtk_box_pack_start(GTK_BOX(((GtkWidget*)videoconfig.monitor_output_layers->data)),window->templateMonitorscreenOverlay,0,0,0);
overall_width+=138;
GtkWidget *boxpack=(GtkWidget*)videoconfig.monitor_output_layers->data;
gtk_box_pack_start(GTK_BOX(boxpack),window->templateMonitorscreenOverlay,0,0,0);
}
int width=0;
GdkWindow *cur_window = gtk_widget_get_window(videoconfig.pack_box);
if(cur_window)
width = gdk_window_get_width(cur_window);
printf("%d - %d\n",width,overall_width);
if (overall_width+150>width){
overall_width=10;
yon_dictionary_add_or_create_if_exists_with_data(videoconfig.monitor_output_layers,"Box",gtk_box_new(GTK_ORIENTATION_HORIZONTAL,0));
gtk_box_pack_start(GTK_BOX(videoconfig.pack_box),(GtkWidget*)videoconfig.monitor_output_layers->data,0,0,0);
if (overall_width+138>width){
overall_width=0;
GtkWidget *boxpack=NULL;
yon_dictionary_add_or_create_if_exists_with_data(videoconfig.monitor_output_layers,"Box",(boxpack=gtk_box_new(GTK_ORIENTATION_HORIZONTAL,0)));
gtk_style_context_add_class(gtk_widget_get_style_context((GtkWidget*)videoconfig.monitor_output_layers->data),"primary-toolbar");
gtk_widget_show((GtkWidget*)videoconfig.monitor_output_layers->data);
gtk_box_pack_start(GTK_BOX(videoconfig.pack_box),boxpack,0,0,0);
}
}
gtk_widget_show((GtkWidget*)videoconfig.monitor_output_layers->data);
monitor_window *window = yon_dictionary_get_data(videoconfig.monitor_visuals->first,monitor_window*);
gtk_box_pack_start(GTK_BOX(((GtkWidget*)videoconfig.monitor_output_layers->data)),window->templateMonitorscreenOverlay,0,0,0);
// if (container)
// for_dictionaries(dict,videoconfig.monitor_visuals){
// monitor_window *window = yon_dictionary_get_data(dict,monitor_window*);
// if(dict->first==dict) {}
// else {
// gtk_box_pack_start(GTK_BOX(container),window->templateMonitorscreenOverlay,0,0,0);
// }
// }
// monitor_window *window = yon_dictionary_get_data(videoconfig.monitor_visuals->first,monitor_window*);
// gtk_box_pack_start(GTK_BOX(container),window->templateMonitorscreenOverlay,0,0,0);
}
yon_monitor_view_update();
}
@ -1594,6 +1599,7 @@ void yon_setup_widgets(widgets_dict *widgets)
widgets->driverDescriptionColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "driverDescriptionColumn"));
widgets->driverSupportedColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "driverSupportedColumn"));
videoconfig.pack_box=widgets->mainMonitorVisualConfigurationBox;
g_signal_connect(G_OBJECT(widgets->MainWindow), "check-resize", G_CALLBACK(on_resized), NULL);
gtk_window_set_title(GTK_WINDOW(widgets->MainWindow),SETTINGS_VIDEO_TITLE_LABEL);
videoconfig.list = GTK_LIST_STORE(gtk_builder_get_object(widgets-> builder, "liststore6"));

@ -15,6 +15,7 @@
#include <fcntl.h>
#include <getopt.h>
#include <libintl.h>
#include <time.h>
#include "ubl-utils.h"
#include "ubl-settings-video-strings.h"
#ifndef UBL_SETINGS_VIDEO_H
@ -365,7 +366,7 @@ void yon_monitor_config_update(monitorconfig* monitor, char *port, char *config_
void yon_monitor_view_new(monitor_config monitor);
void on_configuration_save_global_local(GtkWidget *self, widgets_dict *widgets);
// void on_confugure_monitor_settings(GtkWidget *self, MonitorSettings *settings);
void yon_monitor_view_draw_all(GtkWidget *cnt);
void yon_monitor_view_draw_all();
void on_monitor_configure(GtkWidget *self,monitor_window *window);
void on_monitor_add(GtkWidget *self,monitor_window *window);
void on_monitor_switch(GtkWidget *self,monitor_window *window);

Loading…
Cancel
Save