Get further with compiling with GTK 3.0

(No functional testing done yet)

svn path=/trunk/; revision=38576
This commit is contained in:
Anders Broman 2011-08-17 13:49:47 +00:00
parent b70c6ab594
commit 0280a6b1ce
7 changed files with 121 additions and 12 deletions

View File

@ -762,7 +762,7 @@ color_filter_add_cb(color_filter_t *colorf, gpointer user_data)
static void
create_new_color_filter(GtkButton *button, const char *filter)
{
#if 0/*GTK_CHECK_VERSION(3,0,0)*/
#if GTK_CHECK_VERSION(3,0,0)
GtkStyleContext *context;
GdkRGBA *rgba_bg_color;
GdkRGBA *rgba_fg_color;
@ -781,7 +781,7 @@ create_new_color_filter(GtkButton *button, const char *filter)
gtk_tree_selection_unselect_all (sel);
/* Use the default background and foreground colors as the colors. */
#if 0/*GTK_CHECK_VERSION(3,0,0)*/
#if GTK_CHECK_VERSION(3,0,0)
context = gtk_widget_get_style_context (new_packet_list_get_widget());
gtk_style_context_get (context, GTK_STATE_NORMAL,
"background-color", &rgba_bg_color,
@ -789,7 +789,10 @@ create_new_color_filter(GtkButton *button, const char *filter)
gtk_style_context_get (context, GTK_STATE_NORMAL,
"forground-color", &rgba_fg_color,
NULL);
/* gdk_rgba_free (rgba_bg_color); */
gdkRGBAcolor_to_color_t(&bg_color, rgba_bg_color);
gdkRGBAcolor_to_color_t(&fg_color, rgba_fg_color);
gdk_rgba_free (rgba_bg_color);
gdk_rgba_free (rgba_fg_color);
#else
style = gtk_widget_get_style(new_packet_list_get_widget());

View File

@ -98,8 +98,11 @@ edit_color_filter_dialog(GtkWidget *color_filters,
color_filter_t *colorf;
GtkWidget *edit_dialog;
GtkWidget *dialog_vbox;
#if GTK_CHECK_VERSION(3,0,0)
GdkRGBA bg_rgba_color, fg_rgba_color;
#else
GdkColor bg_color, fg_color;
#endif
GtkWidget *filter_fr;
GtkWidget *filter_fr_vbox;
GtkWidget *filter_name_hbox;
@ -164,12 +167,18 @@ edit_color_filter_dialog(GtkWidget *color_filters,
filt_name_entry = gtk_entry_new ();
gtk_entry_set_text(GTK_ENTRY(filt_name_entry), colorf->filter_name);
#if GTK_CHECK_VERSION(3,0,0)
color_t_to_gdkRGBAcolor(&bg_rgba_color, &colorf->bg_color);
color_t_to_gdkRGBAcolor(&fg_rgba_color, &colorf->fg_color);
gtk_widget_override_background_color(filt_name_entry, GTK_STATE_NORMAL, &bg_rgba_color);
gtk_widget_override_color(filt_name_entry, GTK_STATE_NORMAL, &fg_rgba_color);
#else
color_t_to_gdkcolor(&bg_color, &colorf->bg_color);
color_t_to_gdkcolor(&fg_color, &colorf->fg_color);
gtk_widget_modify_base(filt_name_entry, GTK_STATE_NORMAL, &bg_color);
gtk_widget_modify_text(filt_name_entry, GTK_STATE_NORMAL, &fg_color);
#endif
gtk_box_pack_start (GTK_BOX (filter_name_hbox), filt_name_entry, TRUE, TRUE, 0);
gtk_widget_set_tooltip_text(filt_name_entry, "This is the editable name of the filter. (No @ characters allowed.)");
@ -362,9 +371,15 @@ edit_color_filter_ok_cb (GtkButton *button,
gpointer user_data)
{
GtkWidget *dialog;
#if GTK_CHECK_VERSION(3,0,0)
GtkStyleContext *context;
GdkRGBA *new_rgba_bg_color;
GdkRGBA *new_rgba_fg_color;
#else
GtkStyle *style;
GdkColor new_fg_color;
GdkColor new_bg_color;
#endif
gchar *filter_name;
gchar *filter_text;
gboolean filter_disabled;
@ -376,10 +391,22 @@ edit_color_filter_ok_cb (GtkButton *button,
gchar fg_str[14], bg_str[14];
dialog = (GtkWidget *)user_data;
#if GTK_CHECK_VERSION(3,0,0)
context = gtk_widget_get_style_context (filt_name_entry);
gtk_style_context_get (context, GTK_STATE_NORMAL,
"background-color", &new_rgba_bg_color,
NULL);
gtk_style_context_get (context, GTK_STATE_NORMAL,
"forground-color", &new_rgba_fg_color,
NULL);
/* gdk_rgba_free (rgba_bg_color); */
#else
style = gtk_widget_get_style(filt_name_entry);
new_bg_color = style->base[GTK_STATE_NORMAL];
new_fg_color = style->text[GTK_STATE_NORMAL];
#endif
filter_name = g_strdup(gtk_entry_get_text(GTK_ENTRY(filt_name_entry)));
filter_text = g_strdup(gtk_entry_get_text(GTK_ENTRY(filt_text_entry)));
@ -410,12 +437,17 @@ edit_color_filter_ok_cb (GtkButton *button,
colorf->filter_text = filter_text;
colorf->disabled = filter_disabled;
#if GTK_CHECK_VERSION(3,0,0)
gdkRGBAcolor_to_color_t(&colorf->fg_color, new_rgba_fg_color);
gdkRGBAcolor_to_color_t(&colorf->bg_color, new_rgba_bg_color);
#else
gdkcolor_to_color_t(&colorf->fg_color, &new_fg_color);
gdkcolor_to_color_t(&colorf->bg_color, &new_bg_color);
#endif
g_snprintf(fg_str, sizeof(fg_str), "#%04X%04X%04X",
new_fg_color.red, new_fg_color.green, new_fg_color.blue);
colorf->fg_color.red, colorf->fg_color.green, colorf->fg_color.blue);
g_snprintf(bg_str, sizeof(bg_str), "#%04X%04X%04X",
new_bg_color.red, new_bg_color.green, new_bg_color.blue);
colorf->bg_color.red, colorf->bg_color.green, colorf->bg_color.blue);
model = gtk_tree_view_get_model(GTK_TREE_VIEW(color_filters));
gtk_tree_model_iter_nth_child(model, &iter, NULL, color_dlg_row_selected);
gtk_list_store_set(GTK_LIST_STORE(model), &iter, 0, filter_name,
@ -428,6 +460,10 @@ edit_color_filter_ok_cb (GtkButton *button,
/* Destroy the dialog box. */
window_destroy(dialog);
}
#if GTK_CHECK_VERSION(3,0,0)
gdk_rgba_free (new_fg_color);
gdk_rgba_free (new_bg_color);
#endif
}
/* reject new color filter addition */
@ -535,7 +571,11 @@ static void
color_sel_ok_cb (GtkButton *button _U_,
gpointer user_data)
{
#if GTK_CHECK_VERSION(3,0,0)
GdkRGBA new_rgba_color; /* Color from color selection dialog */
#else
GdkColor new_color; /* Color from color selection dialog */
#endif
GtkWidget *color_dialog;
GtkWidget *parent;
GtkWidget *color_selection_bg;
@ -543,7 +583,11 @@ color_sel_ok_cb (GtkButton *button _U_,
color_dialog = (GtkWidget *)user_data;
#if GTK_CHECK_VERSION(3,0,0)
gtk_color_selection_get_current_rgba(GTK_COLOR_SELECTION(gtk_color_selection_dialog_get_color_selection(GTK_COLOR_SELECTION_DIALOG(color_dialog))), &new_rgba_color);
#else
gtk_color_selection_get_current_color(GTK_COLOR_SELECTION(gtk_color_selection_dialog_get_color_selection(GTK_COLOR_SELECTION_DIALOG(color_dialog))), &new_color);
#endif
#if 0
if ( ! get_color(&new_color) ){
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
@ -560,12 +604,19 @@ color_sel_ok_cb (GtkButton *button _U_,
is_bg = (color_dialog == color_selection_bg);
color_sel_win_destroy(color_dialog);
#if GTK_CHECK_VERSION(3,0,0)
/* now apply the change to the fore/background */
if (is_bg)
gtk_widget_override_background_color(filt_name_entry, GTK_STATE_NORMAL, &new_rgba_color);
else
gtk_widget_override_color(filt_name_entry, GTK_STATE_NORMAL, &new_rgba_color);
#else
/* now apply the change to the fore/background */
if (is_bg)
gtk_widget_modify_base(filt_name_entry, GTK_STATE_NORMAL, &new_color);
else
gtk_widget_modify_text(filt_name_entry, GTK_STATE_NORMAL, &new_color);
#endif
#if 0
}
#endif

View File

@ -122,7 +122,16 @@ color_t_to_gdkcolor(GdkColor *target, const color_t *source)
target->green = source->green;
target->blue = source->blue;
}
#if GTK_CHECK_VERSION(3,0,0)
void
color_t_to_gdkRGBAcolor(GdkRGBA *target, const color_t *source)
{
target->alpha = 1;
target->red = source->red / 65535.0;
target->green = source->green / 65535.0;
target->blue = source->blue / 65535.0;
}
#endif
void
gdkcolor_to_color_t(color_t *target, const GdkColor *source)
{
@ -131,3 +140,14 @@ gdkcolor_to_color_t(color_t *target, const GdkColor *source)
target->green = source->green;
target->blue = source->blue;
}
#if GTK_CHECK_VERSION(3,0,0)
void
gdkRGBAcolor_to_color_t(color_t *target, const GdkRGBA *source)
{
target->pixel = 0;
target->red = source->red*65535;
target->green = source->green*65535;
target->blue = source->blue*65535;
}
#endif

View File

@ -55,12 +55,16 @@ gboolean get_color(GdkColor *new_color);
* @param source the source color_t
*/
void color_t_to_gdkcolor(GdkColor *target, const color_t *source);
#if GTK_CHECK_VERSION(3,0,0)
void color_t_to_gdkRGBAcolor(GdkRGBA *target, const color_t *source);
#endif
/** Convert GdkColor to color_t.
*
* @param target the source color_t
* @param source the GdkColor to be filled
*/
void gdkcolor_to_color_t(color_t *target, const GdkColor *source);
#if GTK_CHECK_VERSION(3,0,0)
void gdkRGBAcolor_to_color_t(color_t *target, const GdkRGBA *source);
#endif
#endif /* __COLORS_H__ */

View File

@ -220,7 +220,12 @@ fileset_dlg_add_file(fileset_entry *entry) {
if(row <= 18) {
GtkRequisition requisition;
#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_get_preferred_size(fs_tb, &requisition, NULL);
#else
gtk_widget_size_request(fs_tb, &requisition);
#endif
/* XXX use gtk_window_set_default_size()? */
gtk_widget_set_size_request(fs_sw, -1, requisition.height);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(fs_sw), GTK_POLICY_NEVER, GTK_POLICY_NEVER);
}

View File

@ -829,7 +829,11 @@ filter_autocomplete_handle_backspace(GtkWidget *filter_te, GtkWidget *list, GtkW
filter_autocomplete_enable_sorting(model);
gtk_tree_view_columns_autosize(GTK_TREE_VIEW(list));
#if GTK_CHECK_VERSION(3,0,0)
gtk_widget_get_preferred_size(list, &requisition, NULL);
#else
gtk_widget_size_request(list, &requisition);
#endif
#if GTK_CHECK_VERSION(2,18,0)
gtk_widget_get_allocation(popup_win, &popup_win_alloc);
@ -837,6 +841,7 @@ filter_autocomplete_handle_backspace(GtkWidget *filter_te, GtkWidget *list, GtkW
popup_win_alloc = popup_win->allocation;
#endif
/* XXX use gtk_window_set_default_size()? */
gtk_widget_set_size_request(popup_win, popup_win_alloc.width,
(requisition.height<200? requisition.height+8:200));
gtk_window_resize(GTK_WINDOW(popup_win), popup_win_alloc.width,

View File

@ -1245,6 +1245,19 @@ filter_add_expr_bt_cb(GtkWidget *w _U_, gpointer main_w_arg)
static void
color_filter_te(GtkWidget *w, guint16 red, guint16 green, guint16 blue)
{
#if GTK_CHECK_VERSION(3,0,0)
static GdkColor black = { 0, 0, 0, 1.0 };
GdkRGBA bg;
bg.red = red / 65535.0;
bg.green = green / 65535.0;
bg.blue = blue / 65535.0;
bg.alpha = 1;
gtk_widget_override_color(w, GTK_STATE_NORMAL, &black);
gtk_widget_override_background_color(w, GTK_STATE_NORMAL, &bg);
gtk_widget_override_cursor(w, GTK_STATE_NORMAL, &black, &black);
#else
static GdkColor black = { 0, 0, 0, 0 };
GdkColor bg;
@ -1256,15 +1269,23 @@ color_filter_te(GtkWidget *w, guint16 red, guint16 green, guint16 blue)
gtk_widget_modify_text(w, GTK_STATE_NORMAL, &black);
gtk_widget_modify_base(w, GTK_STATE_NORMAL, &bg);
gtk_widget_modify_cursor(w, &black, &black);
#endif
}
void
colorize_filter_te_as_empty(GtkWidget *w)
{
/* use defaults */
#if GTK_CHECK_VERSION(3,0,0)
/* use defaults */
gtk_widget_override_color(w, GTK_STATE_NORMAL, NULL);
gtk_widget_override_background_color(w, GTK_STATE_NORMAL, NULL);
gtk_widget_override_cursor(w, GTK_STATE_NORMAL, NULL, NULL);
#else
/* use defaults */
gtk_widget_modify_text(w, GTK_STATE_NORMAL, NULL);
gtk_widget_modify_base(w, GTK_STATE_NORMAL, NULL);
gtk_widget_modify_cursor(w, NULL, NULL);
#endif
}
void