Compare commits
No commits in common. "960a773ed1d724cac94f1a4c2249e072fc259e77" and "2a204640bddfc3c9f8b557c80c1db729e0560322" have entirely different histories.
960a773ed1
...
2a204640bd
@ -2,16 +2,6 @@
|
|||||||
<!-- Generated with glade 3.22.1 -->
|
<!-- Generated with glade 3.22.1 -->
|
||||||
<interface>
|
<interface>
|
||||||
<requires lib="gtk+" version="3.20"/>
|
<requires lib="gtk+" version="3.20"/>
|
||||||
<object class="GtkImage" id="image1">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="stock">gtk-go-up</property>
|
|
||||||
</object>
|
|
||||||
<object class="GtkImage" id="image2">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="stock">gtk-go-down</property>
|
|
||||||
</object>
|
|
||||||
<object class="GtkWindow" id="main-window">
|
<object class="GtkWindow" id="main-window">
|
||||||
<property name="height_request">250</property>
|
<property name="height_request">250</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
@ -142,74 +132,23 @@
|
|||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox">
|
<object class="GtkScrolledWindow">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="orientation">vertical</property>
|
<property name="hscrollbar_policy">never</property>
|
||||||
|
<property name="shadow_type">in</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox">
|
<object class="GtkViewport">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkButton" id="button-up-sort">
|
<object class="GtkListBox" id="layer-list">
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="receives_default">True</property>
|
|
||||||
<property name="image">image1</property>
|
|
||||||
<property name="always_show_image">True</property>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButton" id="button-down-sort">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="receives_default">True</property>
|
|
||||||
<property name="image">image2</property>
|
|
||||||
<property name="always_show_image">True</property>
|
|
||||||
</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">False</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkScrolledWindow">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="hscrollbar_policy">never</property>
|
|
||||||
<property name="shadow_type">in</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkViewport">
|
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<child>
|
<property name="selection_mode">none</property>
|
||||||
<object class="GtkListBox" id="layer-list">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="selection_mode">none</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="expand">True</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
|
@ -155,30 +155,19 @@ static void analyze_cell_layers(GtkListBox *listbox, struct gds_cell *cell)
|
|||||||
* @param row1
|
* @param row1
|
||||||
* @param row2
|
* @param row2
|
||||||
* @param unused
|
* @param unused
|
||||||
* @note Do not use this function. This is an internal callback
|
* @note Do not use this function
|
||||||
* @return See sort function documentation of GTK+
|
* @return
|
||||||
*/
|
*/
|
||||||
static gint sort_func(GtkListBoxRow *row1, GtkListBoxRow *row2, gpointer unused)
|
static gint sort_func(GtkListBoxRow *row1, GtkListBoxRow *row2, gpointer unused)
|
||||||
{
|
{
|
||||||
LayerElement *le1, *le2;
|
LayerElement *le1, *le2;
|
||||||
gint ret;
|
gint ret;
|
||||||
static const enum layer_selector_sort_algo default_sort = LAYER_SELECTOR_SORT_DOWN;
|
|
||||||
const enum layer_selector_sort_algo *algo = (const enum layer_selector_sort_algo *)unused;
|
|
||||||
|
|
||||||
/* Assume downward sorting */
|
|
||||||
/* TODO: This is nasty. Find a better way */
|
|
||||||
if (!algo)
|
|
||||||
algo = &default_sort;
|
|
||||||
|
|
||||||
le1 = LAYER_ELEMENT(row1);
|
le1 = LAYER_ELEMENT(row1);
|
||||||
le2 = LAYER_ELEMENT(row2);
|
le2 = LAYER_ELEMENT(row2);
|
||||||
|
|
||||||
/* Determine sort fow downward sort */
|
|
||||||
ret = layer_element_get_layer(le1) - layer_element_get_layer(le2);
|
ret = layer_element_get_layer(le1) - layer_element_get_layer(le2);
|
||||||
|
|
||||||
/* Change order if upward sort is requested */
|
|
||||||
ret *= (*algo == LAYER_SELECTOR_SORT_DOWN ? 1 : -1);
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -190,6 +179,7 @@ void generate_layer_widgets(GtkListBox *listbox, GList *libs)
|
|||||||
global_list_box = listbox;
|
global_list_box = listbox;
|
||||||
|
|
||||||
clear_list_box_widgets(listbox);
|
clear_list_box_widgets(listbox);
|
||||||
|
gtk_list_box_set_sort_func(listbox, sort_func, NULL, NULL);
|
||||||
|
|
||||||
for (; libs != NULL; libs = libs->next) {
|
for (; libs != NULL; libs = libs->next) {
|
||||||
lib = (struct gds_library *)libs->data;
|
lib = (struct gds_library *)libs->data;
|
||||||
@ -198,8 +188,11 @@ void generate_layer_widgets(GtkListBox *listbox, GList *libs)
|
|||||||
} /* For Cell List */
|
} /* For Cell List */
|
||||||
} /* For libs */
|
} /* For libs */
|
||||||
|
|
||||||
/* Sort the layers */
|
/* Force sort */
|
||||||
layer_selector_force_sort(LAYER_SELECTOR_SORT_DOWN);
|
gtk_list_box_invalidate_sort(listbox);
|
||||||
|
|
||||||
|
/* Disable sort, so user can sort layers */
|
||||||
|
gtk_list_box_set_sort_func(listbox, NULL, NULL, NULL);
|
||||||
|
|
||||||
/* Activate Buttons */
|
/* Activate Buttons */
|
||||||
gtk_widget_set_sensitive(global_load_button, TRUE);
|
gtk_widget_set_sensitive(global_load_button, TRUE);
|
||||||
@ -442,15 +435,4 @@ void setup_save_mapping_callback(GtkWidget *button, GtkWindow *main_window)
|
|||||||
g_signal_connect(button, "clicked", G_CALLBACK(save_mapping_clicked), main_window);
|
g_signal_connect(button, "clicked", G_CALLBACK(save_mapping_clicked), main_window);
|
||||||
}
|
}
|
||||||
|
|
||||||
void layer_selector_force_sort(enum layer_selector_sort_algo sort_function)
|
|
||||||
{
|
|
||||||
if (!global_list_box)
|
|
||||||
return;
|
|
||||||
|
|
||||||
/* Set dorting function, sort, and disable sorting function */
|
|
||||||
gtk_list_box_set_sort_func(global_list_box, sort_func, (gpointer)&sort_function, NULL);
|
|
||||||
gtk_list_box_invalidate_sort(global_list_box);
|
|
||||||
gtk_list_box_set_sort_func(global_list_box, NULL, NULL, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
@ -30,11 +30,6 @@
|
|||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
#include "mapping-parser.h"
|
#include "mapping-parser.h"
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Defines how to sort the layer selector list box.
|
|
||||||
*/
|
|
||||||
enum layer_selector_sort_algo {LAYER_SELECTOR_SORT_DOWN = 0, LAYER_SELECTOR_SORT_UP};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Generate layer widgets in \p listbox
|
* @brief Generate layer widgets in \p listbox
|
||||||
* @note This clears all previously inserted elements
|
* @note This clears all previously inserted elements
|
||||||
@ -69,14 +64,4 @@ GList *export_rendered_layer_info();
|
|||||||
* @note The layer_info::name Element has to be freed manually
|
* @note The layer_info::name Element has to be freed manually
|
||||||
*/
|
*/
|
||||||
void delete_layer_info_struct(struct layer_info *info);
|
void delete_layer_info_struct(struct layer_info *info);
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Force sorting of the layer selector in a specified way
|
|
||||||
*
|
|
||||||
* If the layer selector is not yet set up, this function has no effect.
|
|
||||||
*
|
|
||||||
* @param sort_function Sorting direction
|
|
||||||
*/
|
|
||||||
void layer_selector_force_sort(enum layer_selector_sort_algo sort_function);
|
|
||||||
|
|
||||||
#endif /* __LAYER_SELECTOR_H__ */
|
#endif /* __LAYER_SELECTOR_H__ */
|
||||||
|
Loading…
Reference in New Issue
Block a user