mirror of https://github.com/GNOME/gimp.git
devel-docs: undeprecate doc-shooter and add a few more widgets
Doesn't use X11 any longer, just plain GTK and cairo.
This commit is contained in:
parent
9e88105ee6
commit
dcbd83cafc
|
@ -15,9 +15,9 @@ libgimpwidgets = $(top_builddir)/libgimpwidgets/libgimpwidgets-$(GIMP_API_VERSIO
|
|||
|
||||
|
||||
AM_CPPFLAGS = \
|
||||
$(GTK_CFLAGS) \
|
||||
-DTOP_SRCDIR=\"$(top_srcdir)\" \
|
||||
-DTOP_SRCDIR=\"$(top_srcdir)\" \
|
||||
-I$(top_srcdir) \
|
||||
$(GTK_CFLAGS) \
|
||||
$(GEGL_CFLAGS)
|
||||
|
||||
AM_LDFLAGS = $(mwindows)
|
||||
|
@ -43,8 +43,7 @@ doc_shooter_LDADD = \
|
|||
$(libgimpmath) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
$(GTK_LIBS) \
|
||||
$(X_LIBS) -lX11 -lXext
|
||||
$(GTK_LIBS)
|
||||
|
||||
|
||||
EXTRA_PROGRAMS = doc-shooter
|
||||
|
|
|
@ -98,8 +98,8 @@ create_shadow (GdkPixbuf *src)
|
|||
src_y = -(BLUR_RADIUS + SHADOW_OFFSET) + y - (filter->size >> 1) + i;
|
||||
src_x = -(BLUR_RADIUS + SHADOW_OFFSET) + x - (filter->size >> 1) + j;
|
||||
|
||||
if (src_y < 0 || src_y > gdk_pixbuf_get_height (src) ||
|
||||
src_x < 0 || src_x > gdk_pixbuf_get_width (src))
|
||||
if (src_y < 0 || src_y >= gdk_pixbuf_get_height (src) ||
|
||||
src_x < 0 || src_x >= gdk_pixbuf_get_width (src))
|
||||
continue;
|
||||
|
||||
sumr += src_pixels [src_y * src_rowstride +
|
||||
|
|
|
@ -1,18 +1,9 @@
|
|||
|
||||
#include "config.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#include <gegl.h>
|
||||
#include <gdk/gdkx.h>
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include <X11/extensions/shape.h>
|
||||
|
||||
#include "libgimpbase/gimpbase.h"
|
||||
#include "libgimpconfig/gimpconfig.h"
|
||||
#include "libgimpmodule/gimpmodule.h"
|
||||
|
@ -24,30 +15,6 @@
|
|||
#include "widgets.h"
|
||||
|
||||
|
||||
static Window
|
||||
find_toplevel_window (Display *display,
|
||||
Window xid)
|
||||
{
|
||||
Window root, parent, *children;
|
||||
guint nchildren;
|
||||
|
||||
do
|
||||
{
|
||||
if (XQueryTree (display, xid,
|
||||
&root, &parent, &children, &nchildren) == 0)
|
||||
{
|
||||
g_warning ("Couldn't find window manager window");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (root == parent)
|
||||
return xid;
|
||||
|
||||
xid = parent;
|
||||
}
|
||||
while (TRUE);
|
||||
}
|
||||
|
||||
static GdkPixbuf *
|
||||
add_border_to_shot (GdkPixbuf *pixbuf)
|
||||
{
|
||||
|
@ -70,125 +37,48 @@ add_border_to_shot (GdkPixbuf *pixbuf)
|
|||
}
|
||||
|
||||
static GdkPixbuf *
|
||||
remove_shaped_area (GdkPixbuf *pixbuf,
|
||||
Window window)
|
||||
take_window_shot (GtkWidget *widget)
|
||||
{
|
||||
Display *display;
|
||||
GdkPixbuf *retval;
|
||||
XRectangle *rectangles;
|
||||
gint rectangle_count, rectangle_order;
|
||||
gint i;
|
||||
GtkAllocation allocation;
|
||||
cairo_surface_t *surface;
|
||||
cairo_t *cr;
|
||||
GdkPixbuf *pixbuf;
|
||||
|
||||
retval = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8,
|
||||
gdk_pixbuf_get_width (pixbuf),
|
||||
gdk_pixbuf_get_height (pixbuf));
|
||||
allocation.x = 0;
|
||||
allocation.y = 0;
|
||||
gtk_widget_get_preferred_width (widget, NULL, &allocation.width);
|
||||
gtk_widget_get_preferred_height (widget, NULL, &allocation.height);
|
||||
|
||||
gdk_pixbuf_fill (retval, 0);
|
||||
gtk_widget_size_allocate (widget, &allocation);
|
||||
gtk_widget_get_allocation (widget, &allocation);
|
||||
|
||||
display = gdk_x11_display_get_xdisplay (gdk_display_get_default ());
|
||||
surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
|
||||
allocation.width,
|
||||
allocation.height);
|
||||
cr = cairo_create (surface);
|
||||
gtk_widget_draw (widget, cr);
|
||||
cairo_destroy (cr);
|
||||
|
||||
rectangles = XShapeGetRectangles (display, window, ShapeBounding,
|
||||
&rectangle_count, &rectangle_order);
|
||||
pixbuf = gdk_pixbuf_get_from_surface (surface, 0, 0,
|
||||
allocation.width,
|
||||
allocation.height);
|
||||
|
||||
for (i = 0; i < rectangle_count; i++)
|
||||
cairo_surface_destroy (surface);
|
||||
|
||||
if (GTK_IS_OFFSCREEN_WINDOW (widget))
|
||||
{
|
||||
int y, x;
|
||||
GdkPixbuf *tmp;
|
||||
|
||||
for (y = rectangles[i].y;
|
||||
y < rectangles[i].y + rectangles[i].height;
|
||||
y++)
|
||||
{
|
||||
const guchar *src_pixels;
|
||||
guchar *dest_pixels;
|
||||
tmp = add_border_to_shot (pixbuf);
|
||||
|
||||
src_pixels = gdk_pixbuf_get_pixels (pixbuf) +
|
||||
y * gdk_pixbuf_get_rowstride (pixbuf) +
|
||||
rectangles[i].x * (gdk_pixbuf_get_has_alpha (pixbuf) ? 4 : 3);
|
||||
g_object_unref (pixbuf);
|
||||
|
||||
dest_pixels = gdk_pixbuf_get_pixels (retval) +
|
||||
y * gdk_pixbuf_get_rowstride (retval) +
|
||||
rectangles[i].x * 4;
|
||||
pixbuf = create_shadowed_pixbuf (tmp);
|
||||
|
||||
for (x = rectangles[i].x;
|
||||
x < rectangles[i].x + rectangles[i].width;
|
||||
x++)
|
||||
{
|
||||
*dest_pixels++ = *src_pixels ++;
|
||||
*dest_pixels++ = *src_pixels ++;
|
||||
*dest_pixels++ = *src_pixels ++;
|
||||
*dest_pixels++ = 255;
|
||||
|
||||
if (gdk_pixbuf_get_has_alpha (pixbuf))
|
||||
src_pixels++;
|
||||
}
|
||||
}
|
||||
g_object_unref (tmp);
|
||||
}
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
static GdkPixbuf *
|
||||
take_window_shot (Window child,
|
||||
gboolean include_decoration)
|
||||
{
|
||||
GdkDisplay *display;
|
||||
GdkScreen *screen;
|
||||
GdkWindow *window;
|
||||
Window xid;
|
||||
gint x_orig, y_orig;
|
||||
gint x = 0, y = 0;
|
||||
gint width, height;
|
||||
GdkPixbuf *tmp, *tmp2;
|
||||
GdkPixbuf *retval;
|
||||
|
||||
display = gdk_display_get_default ();
|
||||
screen = gdk_screen_get_default ();
|
||||
|
||||
if (include_decoration)
|
||||
xid = find_toplevel_window (gdk_x11_display_get_xdisplay (display), child);
|
||||
else
|
||||
xid = child;
|
||||
|
||||
window = gdk_x11_window_foreign_new_for_display (display, xid);
|
||||
|
||||
width = gdk_window_get_width (window);
|
||||
height = gdk_window_get_height (window);
|
||||
gdk_window_get_origin (window, &x_orig, &y_orig);
|
||||
|
||||
if (x_orig < 0)
|
||||
{
|
||||
x = - x_orig;
|
||||
width = width + x_orig;
|
||||
x_orig = 0;
|
||||
}
|
||||
|
||||
if (y_orig < 0)
|
||||
{
|
||||
y = - y_orig;
|
||||
height = height + y_orig;
|
||||
y_orig = 0;
|
||||
}
|
||||
|
||||
if (x_orig + width > gdk_screen_get_width (screen))
|
||||
width = gdk_screen_get_width (screen) - x_orig;
|
||||
|
||||
if (y_orig + height > gdk_screen_get_height (screen))
|
||||
height = gdk_screen_get_height (screen) - y_orig;
|
||||
|
||||
tmp = gdk_pixbuf_get_from_window (window,
|
||||
x, y, width, height);
|
||||
|
||||
if (include_decoration)
|
||||
tmp2 = remove_shaped_area (tmp, xid);
|
||||
else
|
||||
tmp2 = add_border_to_shot (tmp);
|
||||
|
||||
retval = create_shadowed_pixbuf (tmp2);
|
||||
|
||||
g_object_unref (tmp);
|
||||
g_object_unref (tmp2);
|
||||
|
||||
return retval;
|
||||
return pixbuf;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
@ -196,6 +86,7 @@ shooter_get_foreground (GimpRGB *color)
|
|||
{
|
||||
color->r = color->g = color->b = 0.0;
|
||||
color->a = 1.0;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -204,6 +95,7 @@ shooter_get_background (GimpRGB *color)
|
|||
{
|
||||
color->r = color->g = color->b = 1.0;
|
||||
color->a = 1.0;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -232,11 +124,11 @@ shooter_ensure_modules (void)
|
|||
}
|
||||
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
main (int argc,
|
||||
char **argv)
|
||||
{
|
||||
GdkPixbuf *screenshot = NULL;
|
||||
GList *toplevels;
|
||||
GList *node;
|
||||
GList *toplevels;
|
||||
GList *node;
|
||||
|
||||
g_set_application_name ("GIMP documentation shooter");
|
||||
|
||||
|
@ -246,8 +138,6 @@ main (int argc, char **argv)
|
|||
if (! gtk_init_check (&argc, &argv))
|
||||
return EXIT_SUCCESS;
|
||||
|
||||
gtk_rc_add_default_file (gimp_gtkrc ());
|
||||
|
||||
units_init ();
|
||||
|
||||
gimp_widgets_init (shooter_standard_help,
|
||||
|
@ -259,39 +149,29 @@ main (int argc, char **argv)
|
|||
|
||||
for (node = toplevels; node; node = g_list_next (node))
|
||||
{
|
||||
GdkWindow *window;
|
||||
WidgetInfo *info;
|
||||
XID xid;
|
||||
gchar *filename;
|
||||
WidgetInfo *info = node->data;
|
||||
GdkPixbuf *screenshot = NULL;
|
||||
|
||||
info = node->data;
|
||||
|
||||
gtk_widget_show (info->window);
|
||||
|
||||
window = gtk_widget_get_window (info->window);
|
||||
|
||||
gtk_widget_show_now (info->window);
|
||||
gtk_widget_queue_draw (info->window);
|
||||
gtk_widget_show (info->widget);
|
||||
gtk_widget_queue_draw (info->widget);
|
||||
|
||||
while (gtk_events_pending ())
|
||||
{
|
||||
gtk_main_iteration ();
|
||||
}
|
||||
sleep (1);
|
||||
gtk_main_iteration ();
|
||||
|
||||
while (gtk_events_pending ())
|
||||
screenshot = take_window_shot (info->widget);
|
||||
|
||||
if (screenshot)
|
||||
{
|
||||
gtk_main_iteration ();
|
||||
gchar *filename;
|
||||
|
||||
filename = g_strdup_printf ("%s.png", info->name);
|
||||
gdk_pixbuf_save (screenshot, filename, "png", NULL, NULL);
|
||||
g_free(filename);
|
||||
|
||||
g_object_unref (screenshot);
|
||||
}
|
||||
|
||||
xid = gdk_x11_window_get_xid (window);
|
||||
screenshot = take_window_shot (xid, info->include_decorations);
|
||||
|
||||
filename = g_strdup_printf ("%s.png", info->name);
|
||||
gdk_pixbuf_save (screenshot, filename, "png", NULL, NULL);
|
||||
g_free(filename);
|
||||
|
||||
gtk_widget_hide (info->window);
|
||||
gtk_widget_hide (info->widget);
|
||||
}
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
|
|
|
@ -26,66 +26,10 @@
|
|||
#define LARGE_HEIGHT 240
|
||||
|
||||
|
||||
#if 0
|
||||
static gboolean
|
||||
adjust_size_callback (WidgetInfo *info)
|
||||
{
|
||||
Window toplevel;
|
||||
Window root;
|
||||
gint tx;
|
||||
gint ty;
|
||||
guint twidth;
|
||||
guint theight;
|
||||
guint tborder_width;
|
||||
guint tdepth;
|
||||
guint target_width = 0;
|
||||
guint target_height = 0;
|
||||
|
||||
toplevel = GDK_WINDOW_XWINDOW (gtk_widget_get_window (info->window));
|
||||
XGetGeometry (GDK_WINDOW_XDISPLAY (gtk_widget_get_window (info->window)),
|
||||
toplevel,
|
||||
&root, &tx, &ty, &twidth, &theight, &tborder_width, &tdepth);
|
||||
|
||||
switch (info->size)
|
||||
{
|
||||
case SMALL:
|
||||
target_width = SMALL_WIDTH;
|
||||
target_height = SMALL_HEIGHT;
|
||||
break;
|
||||
case MEDIUM:
|
||||
target_width = MEDIUM_WIDTH;
|
||||
target_height = MEDIUM_HEIGHT;
|
||||
break;
|
||||
case LARGE:
|
||||
target_width = LARGE_WIDTH;
|
||||
target_height = LARGE_HEIGHT;
|
||||
break;
|
||||
case ASIS:
|
||||
target_width = twidth;
|
||||
target_height = theight;
|
||||
break;
|
||||
}
|
||||
|
||||
if (twidth > target_width ||
|
||||
theight > target_height)
|
||||
{
|
||||
gtk_widget_set_size_request (info->window,
|
||||
2 + target_width - (twidth - target_width), /* Dunno why I need the +2 fudge factor; */
|
||||
2 + target_height - (theight - target_height));
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
realize_callback (WidgetInfo *info)
|
||||
{
|
||||
g_timeout_add (500, (GSourceFunc)adjust_size_callback, info);
|
||||
}
|
||||
#endif
|
||||
|
||||
static WidgetInfo *
|
||||
new_widget_info (const char *name,
|
||||
GtkWidget *widget,
|
||||
gboolean show_all,
|
||||
WidgetSize size)
|
||||
{
|
||||
WidgetInfo *info;
|
||||
|
@ -93,45 +37,41 @@ new_widget_info (const char *name,
|
|||
info = g_new0 (WidgetInfo, 1);
|
||||
|
||||
info->name = g_strdup (name);
|
||||
info->show_all = show_all;
|
||||
info->size = size;
|
||||
info->no_focus = TRUE;
|
||||
|
||||
if (GTK_IS_WINDOW (widget))
|
||||
{
|
||||
info->window = widget;
|
||||
info->widget = widget;
|
||||
|
||||
gtk_window_set_resizable (GTK_WINDOW (info->window), FALSE);
|
||||
#if 0
|
||||
g_signal_connect_swapped (info->window, "realize",
|
||||
G_CALLBACK (realize_callback), info);
|
||||
#endif
|
||||
gtk_window_set_resizable (GTK_WINDOW (info->widget), FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
info->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
info->widget = gtk_offscreen_window_new ();
|
||||
|
||||
gtk_window_set_accept_focus (GTK_WINDOW (info->window), FALSE);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (info->widget), 12);
|
||||
gtk_container_add (GTK_CONTAINER (info->widget), widget);
|
||||
}
|
||||
|
||||
gtk_container_set_border_width (GTK_CONTAINER (info->window), 12);
|
||||
gtk_container_add (GTK_CONTAINER (info->window), widget);
|
||||
gtk_widget_show_all (widget);
|
||||
}
|
||||
if (info->show_all)
|
||||
gtk_widget_show_all (widget);
|
||||
else
|
||||
gtk_widget_show (widget);
|
||||
|
||||
gtk_window_set_skip_taskbar_hint (GTK_WINDOW (info->window), TRUE);
|
||||
|
||||
gtk_widget_set_app_paintable (info->window, TRUE);
|
||||
g_signal_connect (info->window, "focus", G_CALLBACK (gtk_true), NULL);
|
||||
g_signal_connect (info->widget, "focus", G_CALLBACK (gtk_true), NULL);
|
||||
|
||||
switch (size)
|
||||
{
|
||||
case SMALL:
|
||||
gtk_widget_set_size_request (info->window, SMALL_WIDTH, SMALL_HEIGHT);
|
||||
gtk_widget_set_size_request (info->widget, SMALL_WIDTH, SMALL_HEIGHT);
|
||||
break;
|
||||
case MEDIUM:
|
||||
gtk_widget_set_size_request (info->window, MEDIUM_WIDTH, MEDIUM_HEIGHT);
|
||||
gtk_widget_set_size_request (info->widget, MEDIUM_WIDTH, MEDIUM_HEIGHT);
|
||||
break;
|
||||
case LARGE:
|
||||
gtk_widget_set_size_request (info->window, LARGE_WIDTH, LARGE_HEIGHT);
|
||||
gtk_widget_set_size_request (info->widget, LARGE_WIDTH, LARGE_HEIGHT);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -166,75 +106,98 @@ static WidgetInfo *
|
|||
create_browser (void)
|
||||
{
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *align;
|
||||
GtkWidget *browser;
|
||||
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
|
||||
align = gtk_alignment_new (0.5, 0.5, 1.0, 1.0);
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
|
||||
browser = gimp_browser_new ();
|
||||
gtk_widget_set_size_request (browser, 500, 200);
|
||||
gimp_browser_add_search_types (GIMP_BROWSER (browser),
|
||||
"by name", 1,
|
||||
NULL);
|
||||
gimp_browser_show_message (GIMP_BROWSER (browser), "Result goes here");
|
||||
gtk_box_pack_start (GTK_BOX (gimp_browser_get_left_vbox (GIMP_BROWSER (browser))),
|
||||
gtk_label_new ("TreeView goes here"), TRUE, TRUE, 0);
|
||||
gtk_container_add (GTK_CONTAINER (align), browser);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), browser, TRUE, TRUE, 0);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Browser"), FALSE, FALSE, 0);
|
||||
|
||||
return new_widget_info ("gimp-widget-browser", vbox, MEDIUM);
|
||||
return new_widget_info ("gimp-widget-browser", vbox, TRUE, MEDIUM);
|
||||
}
|
||||
|
||||
static WidgetInfo *
|
||||
create_busy_box (void)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
|
||||
widget = gimp_busy_box_new ("Busy Box");
|
||||
gtk_widget_set_halign (widget, GTK_ALIGN_CENTER);
|
||||
gtk_widget_set_valign (widget, GTK_ALIGN_CENTER);
|
||||
|
||||
return new_widget_info ("gimp-widget-busy-box", widget, TRUE, SMALL);
|
||||
}
|
||||
|
||||
static WidgetInfo *
|
||||
create_button (void)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkWidget *align;
|
||||
|
||||
widget = gimp_button_new ();
|
||||
gtk_widget_set_halign (widget, GTK_ALIGN_CENTER);
|
||||
gtk_widget_set_valign (widget, GTK_ALIGN_CENTER);
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (widget),
|
||||
gtk_label_new_with_mnemonic ("_Button"));
|
||||
align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
||||
gtk_container_add (GTK_CONTAINER (align), widget);
|
||||
|
||||
return new_widget_info ("gimp-widget-button", align, SMALL);
|
||||
return new_widget_info ("gimp-widget-button", widget, TRUE, SMALL);
|
||||
}
|
||||
|
||||
static WidgetInfo *
|
||||
create_chain_button (void)
|
||||
{
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *align;
|
||||
GtkWidget *grid;
|
||||
GtkWidget *label;
|
||||
GtkWidget *chain;
|
||||
GtkWidget *separator;
|
||||
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
|
||||
align = gtk_alignment_new (0.5, 0.5, 0.0, 0.8);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
|
||||
grid = gtk_grid_new ();
|
||||
gtk_widget_set_halign (grid, GTK_ALIGN_CENTER);
|
||||
gtk_widget_set_valign (grid, GTK_ALIGN_CENTER);
|
||||
gtk_grid_set_row_spacing (GTK_GRID (grid), 6);
|
||||
gtk_grid_set_column_spacing (GTK_GRID (grid), 6);
|
||||
gtk_container_add (GTK_CONTAINER (align), grid);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), grid, TRUE, TRUE, 0);
|
||||
|
||||
chain = gimp_chain_button_new (GIMP_CHAIN_LEFT);
|
||||
gimp_chain_button_set_active (GIMP_CHAIN_BUTTON (chain), TRUE);
|
||||
gtk_grid_attach (GTK_GRID (grid), chain, 0, 0, 1, 2);
|
||||
|
||||
label = gtk_label_new ("Linked ");
|
||||
gtk_grid_attach (GTK_GRID (grid), label, 1, 0, 1, 1);
|
||||
|
||||
label = gtk_label_new ("Linked ");
|
||||
gtk_grid_attach (GTK_GRID (grid), label, 1, 1, 1, 1);
|
||||
|
||||
separator = gtk_separator_new (GTK_ORIENTATION_VERTICAL);
|
||||
gtk_grid_attach (GTK_GRID (grid), separator, 2, 0, 1, 2);
|
||||
|
||||
label = gtk_label_new (" Unlinked");
|
||||
gtk_grid_attach (GTK_GRID (grid), label, 3, 0, 1, 1);
|
||||
|
||||
label = gtk_label_new (" Unlinked");
|
||||
gtk_grid_attach (GTK_GRID (grid), label, 3, 1, 1, 1);
|
||||
|
||||
chain = gimp_chain_button_new (GIMP_CHAIN_RIGHT);
|
||||
gimp_chain_button_set_active (GIMP_CHAIN_BUTTON (chain), FALSE);
|
||||
gtk_grid_attach (GTK_GRID (grid), chain, 4, 0, 1, 2);
|
||||
|
||||
gtk_box_pack_end (GTK_BOX (vbox), gtk_label_new ("Chain Button"),
|
||||
TRUE, TRUE, 0);
|
||||
FALSE, FALSE, 0);
|
||||
|
||||
return new_widget_info ("gimp-widget-chain-button", vbox, MEDIUM);
|
||||
return new_widget_info ("gimp-widget-chain-button", vbox, TRUE, MEDIUM);
|
||||
}
|
||||
|
||||
static WidgetInfo *
|
||||
|
@ -242,22 +205,23 @@ create_color_area (void)
|
|||
{
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *area;
|
||||
GtkWidget *align;
|
||||
GimpRGB color;
|
||||
|
||||
color_init (&color);
|
||||
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
|
||||
align = gtk_alignment_new (0.5, 0.5, 0.5, 1.0);
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
|
||||
area = gimp_color_area_new (&color, GIMP_COLOR_AREA_SMALL_CHECKS, 0);
|
||||
gtk_widget_set_halign (area, GTK_ALIGN_FILL);
|
||||
gtk_widget_set_valign (area, GTK_ALIGN_CENTER);
|
||||
gimp_color_area_set_draw_border (GIMP_COLOR_AREA (area), TRUE);
|
||||
gtk_widget_set_size_request (area, -1, 25);
|
||||
gtk_container_add (GTK_CONTAINER (align), area);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), area, TRUE, TRUE, 0);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Color Area"), FALSE, FALSE, 0);
|
||||
|
||||
return new_widget_info ("gimp-widget-color-area", vbox, SMALL);
|
||||
return new_widget_info ("gimp-widget-color-area", vbox, TRUE, SMALL);
|
||||
}
|
||||
|
||||
static WidgetInfo *
|
||||
|
@ -265,22 +229,23 @@ create_color_button (void)
|
|||
{
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *button;
|
||||
GtkWidget *align;
|
||||
GimpRGB color;
|
||||
|
||||
color_init (&color);
|
||||
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
|
||||
align = gtk_alignment_new (0.5, 0.5, 0.5, 1.0);
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
|
||||
button = gimp_color_button_new ("Color Button",
|
||||
80, 20, &color,
|
||||
GIMP_COLOR_AREA_SMALL_CHECKS);
|
||||
gtk_container_add (GTK_CONTAINER (align), button);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_widget_set_halign (button, GTK_ALIGN_CENTER);
|
||||
gtk_widget_set_valign (button, GTK_ALIGN_CENTER);
|
||||
gtk_container_add (GTK_CONTAINER (vbox), button);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Color Button"), FALSE, FALSE, 0);
|
||||
|
||||
return new_widget_info ("gimp-widget-color-button", vbox, SMALL);
|
||||
return new_widget_info ("gimp-widget-color-button", vbox, TRUE, SMALL);
|
||||
}
|
||||
|
||||
static WidgetInfo *
|
||||
|
@ -288,21 +253,22 @@ create_color_hex_entry (void)
|
|||
{
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *entry;
|
||||
GtkWidget *align;
|
||||
GimpRGB color;
|
||||
|
||||
color_init (&color);
|
||||
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
|
||||
align = gtk_alignment_new (0.5, 0.5, 0.5, 0.0);
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
|
||||
entry = gimp_color_hex_entry_new ();
|
||||
gtk_widget_set_halign (entry, GTK_ALIGN_CENTER);
|
||||
gtk_widget_set_valign (entry, GTK_ALIGN_CENTER);
|
||||
gimp_color_hex_entry_set_color (GIMP_COLOR_HEX_ENTRY (entry), &color);
|
||||
gtk_container_add (GTK_CONTAINER (align), entry);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), entry, TRUE, TRUE, 0);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Color Hex Entry"), FALSE, FALSE, 0);
|
||||
|
||||
return new_widget_info ("gimp-widget-color-hex-entry", vbox, SMALL);
|
||||
return new_widget_info ("gimp-widget-color-hex-entry", vbox, TRUE, SMALL);
|
||||
}
|
||||
|
||||
static WidgetInfo *
|
||||
|
@ -310,21 +276,44 @@ create_color_profile_combo_box (void)
|
|||
{
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *combo;
|
||||
GtkWidget *align;
|
||||
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
|
||||
align = gtk_alignment_new (0.5, 0.5, 0.5, 0.0);
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
|
||||
combo = gimp_color_profile_combo_box_new (gtk_dialog_new (), NULL);
|
||||
gtk_widget_set_halign (combo, GTK_ALIGN_CENTER);
|
||||
gtk_widget_set_valign (combo, GTK_ALIGN_CENTER);
|
||||
gimp_color_profile_combo_box_add_file (GIMP_COLOR_PROFILE_COMBO_BOX (combo),
|
||||
NULL, "sRGB");
|
||||
gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0);
|
||||
gtk_container_add (GTK_CONTAINER (align), combo);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), combo, TRUE, TRUE, 0);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Color Profile Combo Box"),
|
||||
FALSE, FALSE, 0);
|
||||
|
||||
return new_widget_info ("gimp-widget-color-profile-combo-box", vbox, SMALL);
|
||||
return new_widget_info ("gimp-widget-color-profile-combo-box", vbox, TRUE, SMALL);
|
||||
}
|
||||
|
||||
static WidgetInfo *
|
||||
create_color_profile_view (void)
|
||||
{
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *view;
|
||||
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
|
||||
view = gimp_color_profile_view_new ();
|
||||
gtk_widget_set_halign (view, GTK_ALIGN_FILL);
|
||||
gtk_widget_set_valign (view, GTK_ALIGN_CENTER);
|
||||
gimp_color_profile_view_set_profile (GIMP_COLOR_PROFILE_VIEW (view),
|
||||
gimp_color_profile_new_rgb_srgb ());
|
||||
gtk_box_pack_start (GTK_BOX (vbox), view, TRUE, TRUE, 0);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Color Profile View"),
|
||||
FALSE, FALSE, 0);
|
||||
|
||||
return new_widget_info ("gimp-widget-color-profile-view", vbox, TRUE, SMALL);
|
||||
}
|
||||
|
||||
static WidgetInfo *
|
||||
|
@ -332,25 +321,26 @@ create_color_scale (void)
|
|||
{
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *scale;
|
||||
GtkWidget *align;
|
||||
GimpRGB rgb;
|
||||
GimpHSV hsv;
|
||||
|
||||
color_init (&rgb);
|
||||
gimp_rgb_to_hsv (&rgb, &hsv);
|
||||
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
|
||||
align = gtk_alignment_new (0.5, 0.5, 0.8, 0.0);
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
|
||||
scale = gimp_color_scale_new (GTK_ORIENTATION_HORIZONTAL,
|
||||
GIMP_COLOR_SELECTOR_HUE);
|
||||
gtk_widget_set_halign (scale, GTK_ALIGN_FILL);
|
||||
gtk_widget_set_valign (scale, GTK_ALIGN_CENTER);
|
||||
gimp_color_scale_set_color (GIMP_COLOR_SCALE (scale), &rgb, &hsv);
|
||||
gtk_range_set_value (GTK_RANGE (scale), 40);
|
||||
gtk_container_add (GTK_CONTAINER (align), scale);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), scale, TRUE, TRUE, 0);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Color Scale"), FALSE, FALSE, 0);
|
||||
|
||||
return new_widget_info ("gimp-widget-color-scale", vbox, SMALL);
|
||||
return new_widget_info ("gimp-widget-color-scale", vbox, TRUE, SMALL);
|
||||
}
|
||||
|
||||
static WidgetInfo *
|
||||
|
@ -358,23 +348,27 @@ create_color_selection (void)
|
|||
{
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *selection;
|
||||
GtkWidget *align;
|
||||
GtkWidget *label;
|
||||
GimpRGB color;
|
||||
|
||||
color_init (&color);
|
||||
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
|
||||
align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
||||
selection = gimp_color_selection_new ();
|
||||
gimp_color_selection_set_show_alpha(GIMP_COLOR_SELECTION (selection), TRUE);
|
||||
gimp_color_selection_set_color (GIMP_COLOR_SELECTION (selection), &color);
|
||||
gtk_widget_set_size_request (selection, 400, -1);
|
||||
gtk_container_add (GTK_CONTAINER (align), selection);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Color Selection"), FALSE, FALSE, 0);
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
|
||||
return new_widget_info ("gimp-widget-color-selection", vbox, ASIS);
|
||||
selection = gimp_color_selection_new ();
|
||||
gtk_widget_set_halign (selection, GTK_ALIGN_CENTER);
|
||||
gtk_widget_set_valign (selection, GTK_ALIGN_CENTER);
|
||||
gtk_widget_set_size_request (selection, 400, -1);
|
||||
gimp_color_selection_set_show_alpha (GIMP_COLOR_SELECTION (selection), TRUE);
|
||||
gimp_color_selection_set_color (GIMP_COLOR_SELECTION (selection), &color);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), selection, TRUE, TRUE, 0);
|
||||
gtk_widget_show (selection);
|
||||
|
||||
label = gtk_label_new ("Color Selection");
|
||||
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
return new_widget_info ("gimp-widget-color-selection", vbox, FALSE, ASIS);
|
||||
}
|
||||
|
||||
static WidgetInfo *
|
||||
|
@ -397,8 +391,7 @@ create_dialog (void)
|
|||
content = gtk_dialog_get_content_area (GTK_DIALOG (widget));
|
||||
gtk_container_add (GTK_CONTAINER (content), label);
|
||||
gtk_widget_show (label);
|
||||
info = new_widget_info ("gimp-widget-dialog", widget, MEDIUM);
|
||||
info->include_decorations = TRUE;
|
||||
info = new_widget_info ("gimp-widget-dialog", widget, TRUE, MEDIUM);
|
||||
|
||||
return info;
|
||||
}
|
||||
|
@ -408,18 +401,19 @@ create_enum_combo_box (void)
|
|||
{
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *combo;
|
||||
GtkWidget *align;
|
||||
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
|
||||
align = gtk_alignment_new (0.5, 0.5, 0.5, 0.0);
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
|
||||
combo = gimp_enum_combo_box_new (GIMP_TYPE_CHANNEL_TYPE);
|
||||
gtk_widget_set_halign (combo, GTK_ALIGN_FILL);
|
||||
gtk_widget_set_valign (combo, GTK_ALIGN_CENTER);
|
||||
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (combo), GIMP_CHANNEL_BLUE);
|
||||
gtk_container_add (GTK_CONTAINER (align), combo);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), combo, TRUE, TRUE, 0);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Enum Combo Box"), FALSE, FALSE, 0);
|
||||
|
||||
return new_widget_info ("gimp-widget-enum-combo-box", vbox, SMALL);
|
||||
return new_widget_info ("gimp-widget-enum-combo-box", vbox, TRUE, SMALL);
|
||||
}
|
||||
|
||||
static WidgetInfo *
|
||||
|
@ -427,17 +421,18 @@ create_enum_label (void)
|
|||
{
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *label;
|
||||
GtkWidget *align;
|
||||
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
|
||||
align = gtk_alignment_new (0.5, 0.5, 0.5, 0.0);
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
|
||||
label = gimp_enum_label_new (GIMP_TYPE_IMAGE_BASE_TYPE, GIMP_RGB);
|
||||
gtk_container_add (GTK_CONTAINER (align), label);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_widget_set_halign (label, GTK_ALIGN_CENTER);
|
||||
gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, TRUE, 0);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Enum Label"), FALSE, FALSE, 0);
|
||||
|
||||
return new_widget_info ("gimp-widget-enum-label", vbox, SMALL);
|
||||
return new_widget_info ("gimp-widget-enum-label", vbox, TRUE, SMALL);
|
||||
}
|
||||
|
||||
static WidgetInfo *
|
||||
|
@ -445,19 +440,20 @@ create_file_entry (void)
|
|||
{
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *entry;
|
||||
GtkWidget *align;
|
||||
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
|
||||
align = gtk_alignment_new (0.5, 0.5, 0.5, 0.0);
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
|
||||
entry = gimp_file_entry_new ("File Entry",
|
||||
"wilber.png",
|
||||
FALSE, TRUE);
|
||||
gtk_container_add (GTK_CONTAINER (align), entry);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_widget_set_halign (entry, GTK_ALIGN_FILL);
|
||||
gtk_widget_set_valign (entry, GTK_ALIGN_CENTER);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), entry, TRUE, TRUE, 0);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("File Entry"), FALSE, FALSE, 0);
|
||||
|
||||
return new_widget_info ("gimp-widget-file-entry", vbox, SMALL);
|
||||
return new_widget_info ("gimp-widget-file-entry", vbox, TRUE, SMALL);
|
||||
}
|
||||
|
||||
static WidgetInfo *
|
||||
|
@ -472,7 +468,7 @@ create_frame (void)
|
|||
gtk_label_set_yalign (GTK_LABEL (content), 0.0);
|
||||
gtk_container_add (GTK_CONTAINER (frame), content);
|
||||
|
||||
return new_widget_info ("gimp-widget-frame", frame, MEDIUM);
|
||||
return new_widget_info ("gimp-widget-frame", frame, TRUE, MEDIUM);
|
||||
}
|
||||
|
||||
static WidgetInfo *
|
||||
|
@ -480,7 +476,7 @@ create_hint_box (void)
|
|||
{
|
||||
GtkWidget *box = gimp_hint_box_new ("This is a user hint.");
|
||||
|
||||
return new_widget_info ("gimp-widget-hint-box", box, MEDIUM);
|
||||
return new_widget_info ("gimp-widget-hint-box", box, TRUE, MEDIUM);
|
||||
}
|
||||
|
||||
static WidgetInfo *
|
||||
|
@ -488,18 +484,19 @@ create_number_pair_entry (void)
|
|||
{
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *entry;
|
||||
GtkWidget *align;
|
||||
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
|
||||
align = gtk_alignment_new (0.5, 0.5, 0.5, 0.0);
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
|
||||
entry = gimp_number_pair_entry_new (":/", TRUE, 0.001, GIMP_MAX_IMAGE_SIZE);
|
||||
gtk_widget_set_halign (entry, GTK_ALIGN_FILL);
|
||||
gtk_widget_set_valign (entry, GTK_ALIGN_CENTER);
|
||||
gimp_number_pair_entry_set_values (GIMP_NUMBER_PAIR_ENTRY (entry), 4, 3);
|
||||
gtk_container_add (GTK_CONTAINER (align), entry);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), entry, TRUE, TRUE, 0);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Number Pair Entry"), FALSE, FALSE, 0);
|
||||
|
||||
return new_widget_info ("gimp-widget-number-pair-entry", vbox, SMALL);
|
||||
return new_widget_info ("gimp-widget-number-pair-entry", vbox, TRUE, SMALL);
|
||||
}
|
||||
|
||||
static WidgetInfo *
|
||||
|
@ -507,10 +504,9 @@ create_int_combo_box (void)
|
|||
{
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *combo;
|
||||
GtkWidget *align;
|
||||
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
|
||||
align = gtk_alignment_new (0.5, 0.5, 0.5, 0.0);
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
|
||||
combo = gimp_int_combo_box_new ("Sobel", 1,
|
||||
"Prewitt", 2,
|
||||
"Gradient", 3,
|
||||
|
@ -518,14 +514,15 @@ create_int_combo_box (void)
|
|||
"Differential", 5,
|
||||
"Laplace", 6,
|
||||
NULL);
|
||||
gtk_widget_set_halign (combo, GTK_ALIGN_FILL);
|
||||
gtk_widget_set_valign (combo, GTK_ALIGN_CENTER);
|
||||
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (combo), 1);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), combo, TRUE, TRUE, 0);
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (align), combo);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Int Combo Box"), FALSE, FALSE, 0);
|
||||
|
||||
return new_widget_info ("gimp-widget-int-combo-box", vbox, SMALL);
|
||||
return new_widget_info ("gimp-widget-int-combo-box", vbox, TRUE, SMALL);
|
||||
}
|
||||
|
||||
static WidgetInfo *
|
||||
|
@ -533,18 +530,19 @@ create_memsize_entry (void)
|
|||
{
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *entry;
|
||||
GtkWidget *align;
|
||||
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
|
||||
align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
|
||||
entry = gimp_memsize_entry_new ((3 * 1024 + 512) * 1024,
|
||||
0, 1024 * 1024 * 1024);
|
||||
gtk_container_add (GTK_CONTAINER (align), entry);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_widget_set_halign (entry, GTK_ALIGN_CENTER);
|
||||
gtk_widget_set_valign (entry, GTK_ALIGN_CENTER);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), entry, TRUE, TRUE, 0);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Memsize Entry"), FALSE, FALSE, 0);
|
||||
|
||||
return new_widget_info ("gimp-widget-memsize-entry", vbox, SMALL);
|
||||
return new_widget_info ("gimp-widget-memsize-entry", vbox, TRUE, SMALL);
|
||||
}
|
||||
|
||||
static WidgetInfo *
|
||||
|
@ -553,22 +551,24 @@ create_offset_area (void)
|
|||
GtkWidget *vbox;
|
||||
GtkWidget *frame;
|
||||
GtkWidget *area;
|
||||
GtkWidget *align;
|
||||
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
|
||||
align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
|
||||
frame = gtk_frame_new (NULL);
|
||||
gtk_widget_set_halign (frame, GTK_ALIGN_CENTER);
|
||||
gtk_widget_set_valign (frame, GTK_ALIGN_CENTER);
|
||||
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
|
||||
gtk_container_add (GTK_CONTAINER (align), frame);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0);
|
||||
|
||||
area = gimp_offset_area_new (100, 100);
|
||||
gimp_offset_area_set_size (GIMP_OFFSET_AREA (area), 180, 160);
|
||||
gimp_offset_area_set_offsets (GIMP_OFFSET_AREA (area), 30, 30);
|
||||
gtk_container_add (GTK_CONTAINER (frame), area);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Offset Area"), FALSE, FALSE, 0);
|
||||
|
||||
return new_widget_info ("gimp-widget-offset-area", vbox, LARGE);
|
||||
return new_widget_info ("gimp-widget-offset-area", vbox, TRUE, LARGE);
|
||||
}
|
||||
|
||||
static WidgetInfo *
|
||||
|
@ -577,17 +577,18 @@ create_page_selector (void)
|
|||
GtkWidget *vbox;
|
||||
GtkWidget *selector;
|
||||
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
selector = gimp_page_selector_new ();
|
||||
gtk_widget_set_size_request (selector, -1, 240);
|
||||
gimp_page_selector_set_n_pages (GIMP_PAGE_SELECTOR (selector), 16);
|
||||
gimp_page_selector_select_range (GIMP_PAGE_SELECTOR (selector),
|
||||
"1,3,7-9,12-15");
|
||||
gtk_box_pack_start (GTK_BOX (vbox), selector, TRUE, TRUE, 0);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Page Selector"), FALSE, FALSE, 0);
|
||||
|
||||
return new_widget_info ("gimp-widget-page-selector", vbox, ASIS);
|
||||
return new_widget_info ("gimp-widget-page-selector", vbox, TRUE, ASIS);
|
||||
}
|
||||
|
||||
static WidgetInfo *
|
||||
|
@ -595,23 +596,24 @@ create_path_editor (void)
|
|||
{
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *editor;
|
||||
GtkWidget *align;
|
||||
gchar *config = gimp_config_build_data_path ("patterns");
|
||||
gchar *path = gimp_config_path_expand (config, TRUE, NULL);
|
||||
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
|
||||
align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
|
||||
editor = gimp_path_editor_new ("Path Editor", path);
|
||||
gtk_widget_set_halign (editor, GTK_ALIGN_CENTER);
|
||||
gtk_widget_set_valign (editor, GTK_ALIGN_CENTER);
|
||||
gtk_widget_set_size_request (editor, -1, 240);
|
||||
gtk_container_add (GTK_CONTAINER (align), editor);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), editor, TRUE, TRUE, 0);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Path Editor"), FALSE, FALSE, 0);
|
||||
|
||||
g_free (path);
|
||||
g_free (config);
|
||||
|
||||
return new_widget_info ("gimp-widget-path-editor", vbox, ASIS);
|
||||
return new_widget_info ("gimp-widget-path-editor", vbox, TRUE, ASIS);
|
||||
}
|
||||
|
||||
static WidgetInfo *
|
||||
|
@ -619,17 +621,18 @@ create_pick_button (void)
|
|||
{
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *button;
|
||||
GtkWidget *align;
|
||||
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
|
||||
align = gtk_alignment_new (0.5, 0.5, 0.5, 1.0);
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
|
||||
button = gimp_pick_button_new ();
|
||||
gtk_container_add (GTK_CONTAINER (align), button);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_widget_set_halign (button, GTK_ALIGN_CENTER);
|
||||
gtk_widget_set_valign (button, GTK_ALIGN_CENTER);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Pick Button"), FALSE, FALSE, 0);
|
||||
|
||||
return new_widget_info ("gimp-widget-pick-button", vbox, SMALL);
|
||||
return new_widget_info ("gimp-widget-pick-button", vbox, TRUE, SMALL);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
@ -654,25 +657,26 @@ create_preview_area (void)
|
|||
{
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *area;
|
||||
GtkWidget *align;
|
||||
GdkPixbuf *pixbuf;
|
||||
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
|
||||
align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
|
||||
area = gimp_preview_area_new ();
|
||||
gtk_widget_set_halign (area, GTK_ALIGN_CENTER);
|
||||
gtk_widget_set_valign (area, GTK_ALIGN_CENTER);
|
||||
g_signal_connect (area, "realize",
|
||||
G_CALLBACK (area_realize), NULL);
|
||||
gtk_container_add (GTK_CONTAINER (align), area);
|
||||
pixbuf = load_image ("wilber-wizard.png");
|
||||
gtk_widget_set_size_request (area,
|
||||
gdk_pixbuf_get_width (pixbuf),
|
||||
gdk_pixbuf_get_height (pixbuf));
|
||||
g_object_unref (pixbuf);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), area, TRUE, TRUE, 0);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Preview Area"), FALSE, FALSE, 0);
|
||||
|
||||
return new_widget_info ("gimp-widget-preview-area", vbox, MEDIUM);
|
||||
return new_widget_info ("gimp-widget-preview-area", vbox, TRUE, MEDIUM);
|
||||
}
|
||||
|
||||
static WidgetInfo *
|
||||
|
@ -680,24 +684,44 @@ create_string_combo_box (void)
|
|||
{
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *combo;
|
||||
GtkWidget *align;
|
||||
GtkListStore *store;
|
||||
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
|
||||
align = gtk_alignment_new (0.5, 0.5, 0.5, 0.0);
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
|
||||
store = gtk_list_store_new (1, G_TYPE_STRING);
|
||||
gtk_list_store_insert_with_values (store, NULL, 0, 0, "Foo", -1);
|
||||
gtk_list_store_insert_with_values (store, NULL, 1, 0, "Bar", -1);
|
||||
combo = gimp_string_combo_box_new (GTK_TREE_MODEL (store), 0, 0);
|
||||
gtk_widget_set_halign (combo, GTK_ALIGN_FILL);
|
||||
gtk_widget_set_valign (combo, GTK_ALIGN_CENTER);
|
||||
g_object_unref (store);
|
||||
gimp_string_combo_box_set_active (GIMP_STRING_COMBO_BOX (combo), "Foo");
|
||||
gtk_box_pack_start (GTK_BOX (vbox), combo, TRUE, TRUE, 0);
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (align), combo);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("String Combo Box"), FALSE, FALSE, 0);
|
||||
|
||||
return new_widget_info ("gimp-widget-string-combo-box", vbox, SMALL);
|
||||
return new_widget_info ("gimp-widget-string-combo-box", vbox, TRUE, SMALL);
|
||||
}
|
||||
|
||||
static WidgetInfo *
|
||||
create_unit_combo_box (void)
|
||||
{
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *combo;
|
||||
|
||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
|
||||
|
||||
combo = gimp_unit_combo_box_new ();
|
||||
gtk_widget_set_halign (combo, GTK_ALIGN_FILL);
|
||||
gtk_widget_set_valign (combo, GTK_ALIGN_CENTER);
|
||||
gimp_unit_combo_box_set_active (GIMP_UNIT_COMBO_BOX (combo), GIMP_UNIT_INCH);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), combo, TRUE, TRUE, 0);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Unit Combo Box"), FALSE, FALSE, 0);
|
||||
|
||||
return new_widget_info ("gimp-widget-unit-combo-box", vbox, TRUE, SMALL);
|
||||
}
|
||||
|
||||
GList *
|
||||
|
@ -706,12 +730,14 @@ get_all_widgets (void)
|
|||
GList *retval = NULL;
|
||||
|
||||
retval = g_list_append (retval, create_browser ());
|
||||
retval = g_list_append (retval, create_busy_box ());
|
||||
retval = g_list_append (retval, create_button ());
|
||||
retval = g_list_append (retval, create_chain_button ());
|
||||
retval = g_list_append (retval, create_color_area ());
|
||||
retval = g_list_append (retval, create_color_button ());
|
||||
retval = g_list_append (retval, create_color_hex_entry ());
|
||||
retval = g_list_append (retval, create_color_profile_combo_box ());
|
||||
retval = g_list_append (retval, create_color_profile_view ());
|
||||
retval = g_list_append (retval, create_color_scale ());
|
||||
retval = g_list_append (retval, create_color_selection ());
|
||||
retval = g_list_append (retval, create_dialog ());
|
||||
|
@ -729,6 +755,7 @@ get_all_widgets (void)
|
|||
retval = g_list_append (retval, create_pick_button ());
|
||||
retval = g_list_append (retval, create_preview_area ());
|
||||
retval = g_list_append (retval, create_string_combo_box ());
|
||||
retval = g_list_append (retval, create_unit_combo_box ());
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
|
|
@ -12,10 +12,10 @@ typedef enum
|
|||
|
||||
typedef struct WidgetInfo
|
||||
{
|
||||
GtkWidget *window;
|
||||
GtkWidget *widget;
|
||||
gchar *name;
|
||||
gboolean no_focus;
|
||||
gboolean include_decorations;
|
||||
gboolean show_all;
|
||||
WidgetSize size;
|
||||
} WidgetInfo;
|
||||
|
||||
|
|
Loading…
Reference in New Issue