Fixed configuration chooser window's path loading; Added dull window creation command

pull/68/head
parent 93d21d058c
commit 6d07fd8058

@ -2,6 +2,7 @@
<gresources>
<gresource prefix="/com/ublinux/ui">
<file>libublsettingsui-gtk3.glade</file>
<file>libublsettingsui-gtk3-window.glade</file>
<file>libublsettingsui-gtk3-about.glade</file>
<file>libublsettingsui-gtk3-documentation.glade</file>
<file>libublsettingsui-gtk3-saving.glade</file>

@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.40.0 -->
<interface>
<requires lib="gtk+" version="3.24"/>
<object class="GtkWindow" id="Window">
<property name="width-request">450</property>
<property name="height-request">350</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3</property>
<property name="type-hint">dialog</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="StatusBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="MainBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<property name="show-close-button">True</property>
<child type="title">
<object class="GtkLabel" id="TitleLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">TEMPLATE Manager</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<child>
<object class="GtkImage" id="HeaderImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3</property>
</object>
</child>
<style>
<class name="toolbar"/>
</style>
</object>
</child>
</object>
</interface>

@ -38,6 +38,7 @@ add_custom_target(GLADE libublsettingsui-gtk3.glade)
set(DEPENDFILES
../libublsettingsui-gtk3.glade
../libublsettingsui-gtk3-window.glade
../libublsettingsui-gtk3-about.glade
../libublsettingsui-gtk3-documentation.glade
../libublsettingsui-gtk3-saving.glade
@ -83,6 +84,7 @@ add_library(${PROJECT_NAME} SHARED
libublsettingsui-gtk3-save.c
libublsettingsui-gtk3-config-window.c
libublsettingsui-gtk3-filechooser.c
libublsettingsui-gtk3-config-chooser.c
libublsettingsui-gtk3-service.c
libublsettingsui-gtk3-app-chooser.c
libublsettingsui-gtk3-standard-callbacks.c

@ -32,7 +32,7 @@ void on_config_file_chooser_accept(GtkWidget *, config_file_chooser_window *wind
const char *filter_name = gtk_file_filter_get_name(gtk_file_chooser_get_filter(GTK_FILE_CHOOSER(window->file_chooser_window->MainFileChooser)));
if (window->file_chooser_window->last_success_selection){
int ext_pos = yon_char_find_last(window->file_chooser_window->last_success_selection,'.');
if (ext_pos==-1||strcmp(window->file_chooser_window->last_success_selection+ext_pos+1,filter_name)){
if (ext_pos==-1||strcmp(window->file_chooser_window->last_success_selection+ext_pos,filter_name)){
path = yon_char_unite(window->file_chooser_window->last_success_selection,filter_name,NULL);
free(window->file_chooser_window->last_success_selection);
window->file_chooser_window->last_success_selection = path;
@ -44,9 +44,9 @@ void on_config_file_chooser_accept(GtkWidget *, config_file_chooser_window *wind
gtk_main_quit();
}
filechooser_window *yon_config_file_chooser_window_new(){
filechooser_window *yon_config_file_chooser_window_new(GtkFileChooserAction action){
config_file_chooser_window *window = malloc(sizeof(config_file_chooser_window));
window->file_chooser_window = yon_file_chooser_window_new(GTK_FILE_CHOOSER_ACTION_SAVE);
window->file_chooser_window = yon_file_chooser_window_new(action);
window->ini_filter = gtk_file_filter_new();
gtk_file_filter_add_pattern(window->ini_filter,"*.ini");
gtk_file_filter_set_name(window->ini_filter,".ini");

@ -713,4 +713,16 @@ void yon_entry_set_entry_type(GtkEntry *target,GtkBox *status){
break;
default: break;
}
}
yon_window *yon_window_new(){
yon_window *window = new(yon_window);
memset(window,0,sizeof(yon_window));
GtkBuilder *builder = gtk_builder_new_from_resource(ui_glade_path_window);
window->Window = yon_gtk_builder_get_widget(builder,"Window");
window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox");
window->MainBox = yon_gtk_builder_get_widget(builder,"MainBox");
return window;
}

@ -24,6 +24,9 @@
/**Путь до файла основного окна утилит ubl-settings-**/
#define ui_glade_path "/com/ublinux/ui/libublsettingsui-gtk3.glade"
#define ui_glade_path_window "/com/ublinux/ui/libublsettingsui-gtk3-window.glade"
/**Путь до файла подтверждения открытия документации утилит ubl-settings-**/
#define ui_glade_path_documentation "/com/ublinux/ui/libublsettingsui-gtk3-documentation.glade"
@ -272,7 +275,7 @@ void yon_file_chooser_remove_root(filechooser_window *window);
/// @brief Create file chooser window, configured to select supported configuration files.
/// @return A newly allocated file chooser window;
filechooser_window *yon_config_file_chooser_window_new();
filechooser_window *yon_config_file_chooser_window_new(GtkFileChooserAction action);
void yon_file_chooser_remove_accept_function(filechooser_window *window);
@ -559,6 +562,16 @@ void yon_password_hash_list_set(yon_password_window *window, config_str hashes,
yon_password_window *yon_password_open(GtkEntry *target);
typedef struct {
GtkWidget *Window;
GtkWidget *StatusBox;
GtkWidget *MainBox;
} yon_window;
/// @brief Create empty window
/// @return A newly allocated empty window;
yon_window *yon_window_new();
#define VERSION_LABEL yon_char_unite(_("Version:")," ",!yon_char_is_empty(template_app_information.app_version)?template_app_information.app_version:"","\n",NULL)
#define HELP_LABEL(rest) yon_char_unite(template_app_information.app_tech_name,_(" version:")," ", !yon_char_is_empty(template_app_information.app_version)?template_app_information.app_version:"","\n",\
template_app_information.app_title,"\n",_("Usage:"), " ",template_app_information.app_tech_name," ",_("[OPTIONS]"),"\n",\

Loading…
Cancel
Save