Author: tkng
Date: Tue Aug 9 15:05:23 2005
New Revision: 1175
Modified:
trunk/gtk/caret-state-indicator.c
Log:
* gtk/caret-state-indicator.c: Improved the appearance of state-indicator.
-(caret_state_indicator_paint_window): New callback function to paint
to dwaw square frame.
-(caret_state_indicator_new): Connect above callback function.
Modified: trunk/gtk/caret-state-indicator.c
==============================================================================
--- trunk/gtk/caret-state-indicator.c (original)
+++ trunk/gtk/caret-state-indicator.c Tue Aug 9 15:05:23 2005
@@ -42,9 +42,34 @@
* caret state indicator is a state indicator nearby the caret.
*/
+#define DEFAULT_WINDOW_WIDTH 20
+#define DEFAULT_WINDOW_HEIGHT 20
+
static gint
caret_state_indicator_timeout(gpointer data);
+static gint
+caret_state_indicator_timeout(gpointer data)
+{
+ GtkWidget *window = GTK_WIDGET(data);
+ gtk_widget_hide(window);
+ return 0;
+}
+
+static gint
+caret_state_indicator_paint_window (GtkWidget *window)
+{
+ GtkRequisition req;
+
+ gtk_widget_size_request (window, &req);
+ gtk_paint_flat_box (window->style, window->window,
+ GTK_STATE_NORMAL, GTK_SHADOW_OUT,
+ NULL, GTK_WIDGET(window), "tooltip",
+ 0, 0, DEFAULT_WINDOW_WIDTH, DEFAULT_WINDOW_HEIGHT);
+
+ return FALSE;
+}
+
GtkWidget *
caret_state_indicator_new(void)
{
@@ -55,9 +80,19 @@
label = gtk_label_new("");
gtk_container_add(GTK_CONTAINER(window), label);
- gtk_window_set_default_size(GTK_WINDOW(window), 20, 20);
+ gtk_window_set_default_size(GTK_WINDOW(window),
+ DEFAULT_WINDOW_WIDTH,
+ DEFAULT_WINDOW_HEIGHT);
+ gtk_widget_set_app_paintable (window, TRUE);
+
+ g_signal_connect(window, "expose_event",
+ G_CALLBACK (caret_state_indicator_paint_window),
+ NULL);
+
+ gtk_misc_set_alignment (GTK_MISC (label), 0.5, 0.5);
g_object_set_data(G_OBJECT(window), "label", label);
+
return window;
}
@@ -93,12 +128,4 @@
caret_state_indicator_set_timeout(GtkWidget *window, gint timeout)
{
g_timeout_add(timeout, caret_state_indicator_timeout, (gpointer)window);
-}
-
-static gint
-caret_state_indicator_timeout(gpointer data)
-{
- GtkWidget *window = GTK_WIDGET(data);
- gtk_widget_hide(window);
- return 0;
}