Merge pull request 'master' (#168) from YanTheKaller/ubinstall-gtk:master into master
Reviewed-on: #168pull/239/head
commit
4a5b3a3ab1
|
@ -0,0 +1,194 @@
|
||||
#include "ubinstall-gtk.h"
|
||||
|
||||
int yon_configuration_hub_save(main_window *){
|
||||
|
||||
if (!main_config.configure_mode){
|
||||
int size;
|
||||
config_str parameters = yon_config_get_save_parameters_by_key(&size,modules_parameter,
|
||||
modules_extra_parameter,
|
||||
root_password_parameter,
|
||||
autologin_parameter,
|
||||
xkbmodel_parameter,
|
||||
xkblayout_parameter,
|
||||
xkbvariant_parameter,
|
||||
xkboptions_parameter,
|
||||
hostname_parameter,
|
||||
zone_parameter,
|
||||
lang_parameter,
|
||||
locale_parameter,
|
||||
num_lock_boot_parameter,
|
||||
swap_parameter,
|
||||
swap_size_parameter,
|
||||
boot_parameter,
|
||||
packages_parameter,
|
||||
device_typevfs_parameter,
|
||||
NTPSERVERS_parameter,
|
||||
DOMAIN_parameter,
|
||||
DOMAIN_admanger_parameter,
|
||||
KERNEL_BOOT_parameter,
|
||||
SERVICES_ENABLE_parameter,
|
||||
GRUB_SUPERUSERS_parameter,
|
||||
GRUB_TIMEOUT_parameter,
|
||||
GRUB_DEFAULT_parameter,
|
||||
AUTOLOGINUSER_parameter,
|
||||
NULL);
|
||||
if (parameters){
|
||||
char *command_parameters = yon_char_parsed_to_string(parameters,size," -- ");
|
||||
char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL);
|
||||
if (!system(yon_debug_output("%s\n",command))){}
|
||||
free(command);
|
||||
yon_char_parsed_free(parameters,size);
|
||||
}
|
||||
|
||||
int users_size, save_size;
|
||||
config_str users = yon_config_find_keys(NETWORK_parameter_search,&users_size);
|
||||
parameters = yon_config_get_save_parameters_by_list(&save_size,users,users_size);
|
||||
if (parameters){
|
||||
char *command_parameters = yon_char_parsed_to_string(parameters,save_size," -- ");
|
||||
char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL);
|
||||
if (!system(yon_debug_output("%s\n",command))){}
|
||||
free(command);
|
||||
yon_char_parsed_free(parameters,save_size);
|
||||
}
|
||||
if (users)yon_char_parsed_free(users,users_size);
|
||||
|
||||
users = yon_config_find_keys(USERADD_parameter_search,&users_size);
|
||||
parameters = yon_config_get_save_parameters_by_list(&save_size,users,users_size);
|
||||
if (parameters){
|
||||
char *command_parameters = yon_char_parsed_to_string(parameters,size," -- ");
|
||||
char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL);
|
||||
if (!system(yon_debug_output("%s\n",command))){}
|
||||
free(command);
|
||||
yon_char_parsed_free(parameters,save_size);
|
||||
}
|
||||
if (users)yon_char_parsed_free(users,users_size);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
void on_configuration_hub_selected(GtkWidget* self, main_window *widgets){
|
||||
GList *list = NULL;
|
||||
list = g_list_prepend(list,widgets->HubPackagesListBox);
|
||||
list = g_list_prepend(list,widgets->HubSystemListBox);
|
||||
list = g_list_prepend(list,widgets->HubHardwareListBox);
|
||||
list = g_list_prepend(list,widgets->HubPersonalListBox);
|
||||
list = g_list_reverse(list);
|
||||
GList *iter;
|
||||
for (iter=list;iter;iter=iter->next){
|
||||
if (iter->data!=self){
|
||||
g_signal_handlers_block_by_func(G_OBJECT(iter->data),G_CALLBACK(on_configuration_hub_selected),widgets);
|
||||
GList *flowlist = gtk_flow_box_get_selected_children(GTK_FLOW_BOX(iter->data));
|
||||
if (flowlist){
|
||||
gtk_flow_box_unselect_child(GTK_FLOW_BOX(iter->data),GTK_FLOW_BOX_CHILD(flowlist->data));
|
||||
g_list_free(flowlist);
|
||||
}
|
||||
g_signal_handlers_unblock_by_func(G_OBJECT(iter->data),G_CALLBACK(on_configuration_hub_selected),widgets);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void yon_configuration_hub_section_get_max_size(GtkFlowBox *target, int *ret_width, int *ret_height){
|
||||
GList *list = gtk_container_get_children(GTK_CONTAINER(target));
|
||||
GList *iter;
|
||||
for (iter=list;iter;iter=iter->next){
|
||||
config_hub_icon *section = g_object_get_data(G_OBJECT(iter->data),"config_hub_icon");
|
||||
gtk_widget_realize(GTK_WIDGET(iter->data));
|
||||
gtk_widget_realize(GTK_WIDGET(section->Label));
|
||||
int width;
|
||||
int height;
|
||||
|
||||
gtk_widget_get_preferred_width(section->Label,NULL,&width);
|
||||
gtk_widget_get_preferred_height(section->Label,NULL,&height);
|
||||
if ((*ret_width)<width) (*ret_width) = width;
|
||||
if ((*ret_height)<height) (*ret_height) = height;
|
||||
}
|
||||
}
|
||||
|
||||
void yon_configuration_hub_section_set_max_size(GtkFlowBox *target, int width, int height){
|
||||
GList *list = gtk_container_get_children(GTK_CONTAINER(target));
|
||||
GList *iter;
|
||||
for (iter=list;iter;iter=iter->next){
|
||||
config_hub_icon *section = g_object_get_data(G_OBJECT(iter->data),"config_hub_icon");
|
||||
gtk_widget_set_size_request(section->Label,width,height);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void yon_configuration_hub_resize(main_window *widgets){
|
||||
int max_width=0;
|
||||
int max_height=0;
|
||||
yon_configuration_hub_section_get_max_size(GTK_FLOW_BOX(widgets->HubPersonalListBox),&max_width,&max_height);
|
||||
yon_configuration_hub_section_get_max_size(GTK_FLOW_BOX(widgets->HubHardwareListBox),&max_width,&max_height);
|
||||
yon_configuration_hub_section_get_max_size(GTK_FLOW_BOX(widgets->HubSystemListBox),&max_width,&max_height);
|
||||
yon_configuration_hub_section_get_max_size(GTK_FLOW_BOX(widgets->HubPackagesListBox),&max_width,&max_height);
|
||||
yon_configuration_hub_section_set_max_size(GTK_FLOW_BOX(widgets->HubPersonalListBox),max_width,max_height);
|
||||
yon_configuration_hub_section_set_max_size(GTK_FLOW_BOX(widgets->HubHardwareListBox),max_width,max_height);
|
||||
yon_configuration_hub_section_set_max_size(GTK_FLOW_BOX(widgets->HubSystemListBox),max_width,max_height);
|
||||
yon_configuration_hub_section_set_max_size(GTK_FLOW_BOX(widgets->HubPackagesListBox),max_width,max_height);
|
||||
}
|
||||
|
||||
void on_configuration_hub_open(GtkFlowBox *,GtkFlowBoxChild *child, main_window *widgets){
|
||||
config_hub_icon *cur_icon = g_object_get_data(G_OBJECT(child),"config_hub_icon");
|
||||
|
||||
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),cur_icon->page);
|
||||
yon_page_init(widgets,cur_icon->page);
|
||||
yon_page_update(widgets);
|
||||
}
|
||||
|
||||
void yon_configuration_hub_add(GtkFlowBox *target, char *name, char *icon, enum YON_PAGES page){
|
||||
g_return_if_fail(GTK_IS_FLOW_BOX(target));
|
||||
config_hub_icon *cur_icon = malloc(sizeof(config_hub_icon));
|
||||
memset(cur_icon,0,sizeof(config_hub_icon));
|
||||
|
||||
GtkIconInfo *info = gtk_icon_theme_lookup_icon_for_scale(gtk_icon_theme_get_default(),icon,54,1,GTK_ICON_LOOKUP_FORCE_SIZE);
|
||||
|
||||
char *name_wrapped = yon_char_wrap_to_length_str(name,10);
|
||||
cur_icon->MainBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5);
|
||||
cur_icon->Label = gtk_label_new(name_wrapped);
|
||||
cur_icon->Image = gtk_image_new_from_pixbuf(gtk_icon_info_load_icon(info,NULL));
|
||||
cur_icon->page = page;
|
||||
GtkWidget *flow = gtk_flow_box_child_new();
|
||||
gtk_style_context_add_class(gtk_widget_get_style_context(flow),"bggrey");
|
||||
|
||||
gtk_label_set_xalign(GTK_LABEL(cur_icon->Label),0);
|
||||
g_object_set_data(G_OBJECT(flow),"config_hub_icon",cur_icon);
|
||||
gtk_container_add(GTK_CONTAINER(flow),cur_icon->MainBox);
|
||||
gtk_box_pack_start(GTK_BOX(cur_icon->MainBox),cur_icon->Image,0,0,0);
|
||||
gtk_box_pack_start(GTK_BOX(cur_icon->MainBox),cur_icon->Label,0,0,0);
|
||||
gtk_widget_set_margin_bottom(cur_icon->MainBox,10);
|
||||
gtk_widget_set_margin_top(cur_icon->MainBox,10);
|
||||
gtk_widget_set_margin_start(cur_icon->MainBox,10);
|
||||
gtk_widget_set_margin_end(cur_icon->MainBox,10);
|
||||
gtk_flow_box_insert(target,flow,-1);
|
||||
gtk_widget_show_all(flow);
|
||||
free(name_wrapped);
|
||||
}
|
||||
|
||||
void yon_flow_box_clear(GtkFlowBox *target){
|
||||
GList *list = gtk_container_get_children(GTK_CONTAINER(target));
|
||||
GList *iter;
|
||||
for (iter=list;iter;iter=iter->next){
|
||||
gtk_widget_destroy(GTK_WIDGET(iter->data));
|
||||
}
|
||||
}
|
||||
|
||||
void yon_configuration_hub_init(main_window *widgets){
|
||||
yon_flow_box_clear(GTK_FLOW_BOX(widgets->HubPersonalListBox));
|
||||
yon_flow_box_clear(GTK_FLOW_BOX(widgets->HubSystemListBox));
|
||||
yon_flow_box_clear(GTK_FLOW_BOX(widgets->HubHardwareListBox));
|
||||
yon_flow_box_clear(GTK_FLOW_BOX(widgets->HubPackagesListBox));
|
||||
yon_configuration_hub_add(GTK_FLOW_BOX(widgets->HubPackagesListBox),KERNEL_LABEL,kernel_icon_path,YON_PAGE_KERNEL);
|
||||
yon_configuration_hub_add(GTK_FLOW_BOX(widgets->HubPackagesListBox),KERNEL_ADDON_LABEL,kernel_icon_path,YON_PAGE_KERNEL_ADDON);
|
||||
yon_configuration_hub_add(GTK_FLOW_BOX(widgets->HubPackagesListBox),SOFTWARE_LABEL,"com.ublinux.ubl-settings-update",YON_PAGE_SOFTWARE);
|
||||
yon_configuration_hub_add(GTK_FLOW_BOX(widgets->HubPackagesListBox),PACMAN_SOFTWARE_LABEL,"com.ublinux.ubl-settings-repomanager",YON_PAGE_PACMAN_SOFTWARE);
|
||||
yon_configuration_hub_add(GTK_FLOW_BOX(widgets->HubPackagesListBox),PACKAGES_SECTION_LABEL,"com.ublinux.ubl-settings-repomanager",YON_PAGE_PACKAGES);
|
||||
// yon_configuration_hub_add(GTK_FLOW_BOX(widgets->HubPackagesListBox),KERNEL_ADDON_LABEL,icon_path,YON_PAGE_KERNEL_ADDON);
|
||||
yon_configuration_hub_add(GTK_FLOW_BOX(widgets->HubPersonalListBox),REGION_ICON_LABEL,"com.ublinux.ubl-settings-system",YON_PAGE_REGION);
|
||||
yon_configuration_hub_add(GTK_FLOW_BOX(widgets->HubPersonalListBox),LOCALE_LANGUAGE_LABEL,"com.ublinux.ubl-settings-system",YON_PAGE_LANGUAGE);
|
||||
yon_configuration_hub_add(GTK_FLOW_BOX(widgets->HubPersonalListBox),KEYBOARD_TAB_LABEL,"com.ublinux.ubl-settings-keyboard",YON_PAGE_KEYBOARD);
|
||||
yon_configuration_hub_add(GTK_FLOW_BOX(widgets->HubSystemListBox),USERS_TAB_LABEL,"com.ublinux.ubl-settings-usergroups",YON_PAGE_USERS);
|
||||
yon_configuration_hub_add(GTK_FLOW_BOX(widgets->HubSystemListBox),STARTUP_LABEL,"com.ublinux.ubl-settings-info",YON_PAGE_STARTUP);
|
||||
yon_configuration_hub_add(GTK_FLOW_BOX(widgets->HubSystemListBox),BOOTLOADER_LABEL,"com.ublinux.ubl-settings-bootloader",YON_PAGE_BOOTLOADER);
|
||||
yon_configuration_hub_add(GTK_FLOW_BOX(widgets->HubSystemListBox),NETWORK_LABEL,"com.ublinux.ubl-settings-multiseat",YON_PAGE_NETWORK);
|
||||
yon_configuration_hub_resize(widgets);
|
||||
}
|
||||
@ -1,122 +1,142 @@
|
||||
#include "ubinstall-gtk.h"
|
||||
|
||||
// void yon_resize_images_update(main_window *widgets){
|
||||
// enum YON_PAGES page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook));
|
||||
// gtk_widget_hide(widgets->BootloaderImage);
|
||||
// gtk_widget_hide(widgets->RegionImage);
|
||||
// gtk_widget_hide(widgets->UserImage);
|
||||
// gtk_widget_hide(widgets->StartupImage);
|
||||
// gtk_widget_hide(widgets->NetworkImage);
|
||||
|
||||
// switch(page){
|
||||
// case YON_PAGE_BOOTLOADER:
|
||||
// gtk_widget_show(widgets->BootloaderImage);
|
||||
// break;
|
||||
// case YON_PAGE_REGION:
|
||||
// gtk_widget_show(widgets->RegionImage);
|
||||
// break;
|
||||
// case YON_PAGE_USERS:
|
||||
// gtk_widget_show(widgets->UserImage);
|
||||
// break;
|
||||
// case YON_PAGE_STARTUP:
|
||||
// gtk_widget_show(widgets->StartupImage);
|
||||
// break;
|
||||
// case YON_PAGE_NETWORK:
|
||||
// gtk_widget_show(widgets->NetworkImage);
|
||||
// break;
|
||||
// case YON_PAGE_INSTALLATION:
|
||||
// gtk_widget_show(widgets->SlidesImage);
|
||||
// g_timeout_add(7000,on_image_slide,widgets);
|
||||
|
||||
// break;
|
||||
// default:
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
gboolean on_install_slider_hover_highlight(GtkWidget *, GdkEvent *, main_window *widgets){
|
||||
gtk_widget_show(widgets->NextInstallationSliderImage);
|
||||
gtk_widget_show(widgets->PrevInstallationSliderImage);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// void on_region_resized(GtkWidget *,main_window *widgets){
|
||||
// enum YON_PAGES page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook));
|
||||
// GtkImage *target = NULL;
|
||||
// GdkPixbuf *pixbuf = NULL;
|
||||
// switch (page){
|
||||
// case YON_PAGE_BOOTLOADER:
|
||||
// target = GTK_IMAGE(widgets->BootloaderImage);
|
||||
// pixbuf = widgets->bootloader_original;
|
||||
// break;
|
||||
// case YON_PAGE_REGION:
|
||||
// target = GTK_IMAGE(widgets->RegionImage);
|
||||
// pixbuf = widgets->region_original;
|
||||
|
||||
// break;
|
||||
// case YON_PAGE_USERS:
|
||||
// target = GTK_IMAGE(widgets->UserImage);
|
||||
// pixbuf = widgets->user_original;
|
||||
|
||||
// break;
|
||||
// case YON_PAGE_STARTUP:
|
||||
// target = GTK_IMAGE(widgets->StartupImage);
|
||||
// pixbuf = widgets->startup_original;
|
||||
|
||||
// break;
|
||||
// case YON_PAGE_NETWORK:
|
||||
// target = GTK_IMAGE(widgets->NetworkImage);
|
||||
// pixbuf = widgets->network_original;
|
||||
|
||||
// break;
|
||||
// case YON_PAGE_INSTALLATION:
|
||||
// target = GTK_IMAGE(widgets->SlidesImage);
|
||||
// pixbuf = g_list_nth_data(widgets->slides_original,main_config.cur_slide);
|
||||
|
||||
|
||||
// break;
|
||||
// default:
|
||||
// break;
|
||||
// }
|
||||
// if (target){
|
||||
// yon_image_resize_from_container(target,pixbuf);
|
||||
// }
|
||||
// }
|
||||
gboolean on_install_slider_hover_highlight_end(GtkWidget *, GdkEvent *, main_window *widgets){
|
||||
gtk_widget_hide(widgets->NextInstallationSliderImage);
|
||||
gtk_widget_hide(widgets->PrevInstallationSliderImage);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// int yon_image_resize_from_container(GtkImage *target, GdkPixbuf *pixbuf_unscaled){
|
||||
// int width = gtk_widget_get_allocated_width((gtk_widget_get_parent(GTK_WIDGET(target))));
|
||||
// int height = gtk_widget_get_allocated_height((gtk_widget_get_parent(GTK_WIDGET(target))));
|
||||
|
||||
// int newImgWidthDef = (width <= 217) ? width : width - 30;
|
||||
// int newImgHeightDef = (height <= 120) ? height : height - 80;
|
||||
void on_install_slider_next(GtkWidget* ,GdkEventButton *,main_window *widgets){
|
||||
main_config.chosen_slide=main_config.chosen_slide->next?main_config.chosen_slide->next:g_list_first(main_config.chosen_slide);
|
||||
yon_install_slider_update(widgets);
|
||||
}
|
||||
|
||||
// int originalWidth = gdk_pixbuf_get_width(pixbuf_unscaled);
|
||||
// int originalHeight = gdk_pixbuf_get_height(pixbuf_unscaled);
|
||||
// int newImgHeight = (int)(originalHeight / ((double) originalWidth / newImgWidthDef));
|
||||
void on_install_slider_prev(GtkWidget* ,GdkEventButton *,main_window *widgets){
|
||||
main_config.chosen_slide=main_config.chosen_slide->prev?main_config.chosen_slide->prev:g_list_last(main_config.chosen_slide);
|
||||
yon_install_slider_update(widgets);
|
||||
}
|
||||
|
||||
// if (newImgHeight > newImgHeightDef) {
|
||||
// newImgHeight = newImgHeightDef;
|
||||
// newImgWidthDef = (int)(originalWidth / ((double) originalHeight / newImgHeight));
|
||||
// }
|
||||
// int newImageWidth = (int)(originalWidth / ((double) originalHeight / newImgHeight));
|
||||
void yon_install_slider_update(main_window *widgets){
|
||||
slider_object *cur_slider = (slider_object*)main_config.chosen_slide->data;
|
||||
slider_object *next_slider = main_config.chosen_slide->next?((slider_object*)main_config.chosen_slide->next->data):(slider_object*)(g_list_first(main_config.chosen_slide)->data);
|
||||
GtkWidget *prevleft = gtk_bin_get_child(GTK_BIN(widgets->ScrollLeftEventBox));
|
||||
GtkWidget *prevright = gtk_bin_get_child(GTK_BIN(widgets->ScrollRightEventBox));
|
||||
if (cur_slider->MainBox==prevleft) return;
|
||||
if (prevleft&&prevright) {
|
||||
g_object_ref(G_OBJECT(prevleft));
|
||||
g_object_ref(G_OBJECT(prevright));
|
||||
gtk_container_remove(GTK_CONTAINER(widgets->ScrollLeftEventBox),prevleft);
|
||||
gtk_container_remove(GTK_CONTAINER(widgets->ScrollRightEventBox),prevright);
|
||||
}
|
||||
gtk_container_add(GTK_CONTAINER(widgets->ScrollLeftEventBox),cur_slider->MainBox);
|
||||
gtk_container_add(GTK_CONTAINER(widgets->ScrollRightEventBox),next_slider->MainBox);
|
||||
gtk_container_check_resize(GTK_CONTAINER(widgets->ScrollLeftEventBox));
|
||||
gtk_container_check_resize(GTK_CONTAINER(widgets->ScrollRightEventBox));
|
||||
GList *dots = gtk_container_get_children(GTK_CONTAINER(widgets->SliderProgressBox));
|
||||
GList *iter;
|
||||
for (iter=dots;iter;iter=iter->next){
|
||||
gtk_widget_destroy(GTK_WIDGET(iter->data));
|
||||
}
|
||||
for (iter=main_config.slides;iter;iter=iter->next){
|
||||
GtkWidget *Image = NULL;
|
||||
int chosen = iter==main_config.chosen_slide||(main_config.chosen_slide->next&&iter==main_config.chosen_slide->next)||(!main_config.chosen_slide->next&&iter==g_list_first(main_config.chosen_slide));
|
||||
if (chosen){
|
||||
GtkIconInfo *info = gtk_icon_theme_lookup_icon_for_scale(gtk_icon_theme_get_default(),toggled_icon_path,8,1,GTK_ICON_LOOKUP_FORCE_SIZE);
|
||||
Image = gtk_image_new_from_pixbuf(gtk_icon_info_load_icon(info,NULL));
|
||||
} else {
|
||||
GtkIconInfo *info = gtk_icon_theme_lookup_icon_for_scale(gtk_icon_theme_get_default(),untoggled_icon_path,8,1,GTK_ICON_LOOKUP_FORCE_SIZE);
|
||||
Image = gtk_image_new_from_pixbuf(gtk_icon_info_load_icon(info,NULL));
|
||||
}
|
||||
gtk_box_pack_start(GTK_BOX(widgets->SliderProgressBox),Image,0,0,0);
|
||||
gtk_widget_show(Image);
|
||||
}
|
||||
}
|
||||
|
||||
// GdkPixbuf *scaledPixBuf = gdk_pixbuf_scale_simple(pixbuf_unscaled, newImageWidth, newImgHeight, GDK_INTERP_BILINEAR);
|
||||
// gtk_image_set_from_pixbuf(target, scaledPixBuf);
|
||||
slider_object *yon_slider_object_new(){
|
||||
slider_object *slider = malloc(sizeof(slider_object));
|
||||
memset(slider,0,sizeof(slider_object));
|
||||
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_slider);
|
||||
|
||||
// g_object_unref(scaledPixBuf);
|
||||
slider->MainBox = yon_gtk_builder_get_widget(builder,"MainBox");
|
||||
slider->TitleImage = yon_gtk_builder_get_widget(builder,"TitleImage");
|
||||
slider->TitleLabel = yon_gtk_builder_get_widget(builder,"TitleLabel");
|
||||
slider->TextLabel = yon_gtk_builder_get_widget(builder,"TextLabel");
|
||||
g_object_set_data(G_OBJECT(slider->MainBox),"slider_object",slider);
|
||||
return slider;
|
||||
}
|
||||
|
||||
// return 1;
|
||||
// }
|
||||
void yon_slider_setup(slider_object *slider, char *title, char *icon, char *text_markup){
|
||||
gtk_label_set_text(GTK_LABEL(slider->TitleLabel),title);
|
||||
gtk_label_set_markup(GTK_LABEL(slider->TextLabel),text_markup);
|
||||
gtk_image_set_from_icon_name(GTK_IMAGE(slider->TitleImage),icon,GTK_ICON_SIZE_DND);
|
||||
}
|
||||
|
||||
gboolean on_image_slide(void *data){
|
||||
main_window *widgets = (main_window*)data;
|
||||
int size;
|
||||
config_str target = yon_char_parsed_new(&size,slide_repeat_path);
|
||||
if (size)
|
||||
yon_char_parsed_free(target,size);
|
||||
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->SlidesImage),(GdkPixbuf*)g_list_nth_data(widgets->slides_original,main_config.cur_slide));
|
||||
// gtk_widget_queue_draw(widgets->SlidesImage);
|
||||
if ((int)main_config.cur_slide<size-1) main_config.cur_slide++; else main_config.cur_slide=1;
|
||||
g_mutex_lock(&main_config.install_mutex);
|
||||
if (!main_config.install_complete){
|
||||
g_mutex_unlock(&main_config.install_mutex);
|
||||
return 1;
|
||||
} else{
|
||||
g_mutex_unlock(&main_config.install_mutex);
|
||||
return 0;
|
||||
}
|
||||
slider_object *yon_slider_new_full(char *title, char *icon, char *text_markup){
|
||||
slider_object *slider = yon_slider_object_new();
|
||||
yon_slider_setup(slider,title,icon,text_markup);
|
||||
return slider;
|
||||
}
|
||||
|
||||
void yon_install_slider_init(main_window *widgets){
|
||||
if (main_config.slides) return;
|
||||
slider_object *slider1 = yon_slider_new_full(slide_1_title, icon_path,slide_1_text);
|
||||
slider_object *slider2 = yon_slider_new_full(slide_2_title, icon_path,slide_2_text);
|
||||
slider_object *slider3 = yon_slider_new_full(slide_3_title, icon_path,slide_3_text);
|
||||
slider_object *slider4 = yon_slider_new_full(slide_4_title, icon_path,slide_4_text);
|
||||
slider_object *slider5 = yon_slider_new_full(slide_5_title, icon_path,slide_5_text);
|
||||
slider_object *slider6 = yon_slider_new_full(slide_6_title, icon_path,slide_6_text);
|
||||
slider_object *slider7 = yon_slider_new_full(slide_7_title, icon_path,slide_7_text);
|
||||
slider_object *slider8 = yon_slider_new_full(slide_8_title, icon_path,slide_8_text);
|
||||
slider_object *slider9 = yon_slider_new_full(slide_9_title, icon_path,slide_9_text);
|
||||
slider_object *slider10 = yon_slider_new_full(slide_10_title, icon_path,slide_10_text);
|
||||
slider_object *slider11 = yon_slider_new_full(slide_11_title, icon_path,slide_11_text);
|
||||
slider_object *slider12 = yon_slider_new_full(slide_12_title, icon_path,slide_12_text);
|
||||
slider_object *slider13 = yon_slider_new_full(slide_13_title, icon_path,slide_13_text);
|
||||
slider_object *slider14 = yon_slider_new_full(slide_14_title, icon_path,slide_14_text);
|
||||
slider_object *slider15 = yon_slider_new_full(slide_15_title, icon_path,slide_15_text);
|
||||
slider_object *slider16 = yon_slider_new_full(slide_16_title, icon_path,slide_16_text);
|
||||
slider_object *slider17 = yon_slider_new_full(slide_17_title, icon_path,slide_17_text);
|
||||
slider_object *slider18 = yon_slider_new_full(slide_18_title, icon_path,slide_18_text);
|
||||
slider_object *slider19 = yon_slider_new_full(slide_19_title, icon_path,slide_19_text);
|
||||
slider_object *slider20 = yon_slider_new_full(slide_20_title, icon_path,slide_20_text);
|
||||
slider_object *slider21 = yon_slider_new_full(slide_21_title, icon_path,slide_21_text);
|
||||
slider_object *slider22 = yon_slider_new_full(slide_22_title, icon_path,slide_22_text);
|
||||
main_config.slides = g_list_prepend(main_config.slides,slider22);
|
||||
main_config.slides = g_list_prepend(main_config.slides,slider21);
|
||||
main_config.slides = g_list_prepend(main_config.slides,slider20);
|
||||
main_config.slides = g_list_prepend(main_config.slides,slider19);
|
||||
main_config.slides = g_list_prepend(main_config.slides,slider18);
|
||||
main_config.slides = g_list_prepend(main_config.slides,slider17);
|
||||
main_config.slides = g_list_prepend(main_config.slides,slider16);
|
||||
main_config.slides = g_list_prepend(main_config.slides,slider15);
|
||||
main_config.slides = g_list_prepend(main_config.slides,slider14);
|
||||
main_config.slides = g_list_prepend(main_config.slides,slider13);
|
||||
main_config.slides = g_list_prepend(main_config.slides,slider12);
|
||||
main_config.slides = g_list_prepend(main_config.slides,slider11);
|
||||
main_config.slides = g_list_prepend(main_config.slides,slider10);
|
||||
main_config.slides = g_list_prepend(main_config.slides,slider9);
|
||||
main_config.slides = g_list_prepend(main_config.slides,slider8);
|
||||
main_config.slides = g_list_prepend(main_config.slides,slider7);
|
||||
main_config.slides = g_list_prepend(main_config.slides,slider6);
|
||||
main_config.slides = g_list_prepend(main_config.slides,slider5);
|
||||
main_config.slides = g_list_prepend(main_config.slides,slider4);
|
||||
main_config.slides = g_list_prepend(main_config.slides,slider3);
|
||||
main_config.slides = g_list_prepend(main_config.slides,slider2);
|
||||
main_config.slides = g_list_prepend(main_config.slides,slider1);
|
||||
main_config.slides = g_list_reverse(main_config.slides);
|
||||
main_config.chosen_slide = g_list_first(main_config.slides);
|
||||
yon_install_slider_update(widgets);
|
||||
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->InstallationSliderArrowsOverlay),widgets->NextInstallationSliderImage);
|
||||
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->InstallationSliderArrowsOverlay),widgets->PrevInstallationSliderImage);
|
||||
}
|
||||
|
||||
// void *on_install_slider_slide(){
|
||||
|
||||
// }
|
||||
|
||||
@ -0,0 +1,93 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.40.0 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<object class="GtkFrame" id="MainBox">
|
||||
<property name="height-request">350</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label-xalign">0</property>
|
||||
<property name="shadow-type">in</property>
|
||||
<child>
|
||||
<object class="GtkAlignment">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="top-padding">5</property>
|
||||
<property name="bottom-padding">5</property>
|
||||
<property name="left-padding">5</property>
|
||||
<property name="right-padding">5</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkImage" id="TitleImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="stock">gtk-missing-image</property>
|
||||
<property name="icon_size">5</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="TitleLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
<attribute name="size" value="13312"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="TextLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="use-markup">True</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child type="label_item">
|
||||
<placeholder/>
|
||||
</child>
|
||||
<style>
|
||||
<class name="bggrey"/>
|
||||
</style>
|
||||
</object>
|
||||
</interface>
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue