JNIEXPORT jboolean JNICALL Java_org_gnome_gdk_GdkWindow_gdk_1window_1is_1viewable ( JNIEnv* env, jclass cls, jlong _self ) { gboolean result; jboolean _result; GdkWindow* self; // convert parameter self self = (GdkWindow*) _self; // call function result = gdk_window_is_viewable(self); // cleanup parameter self // translate return value to JNI type _result = (jboolean) result; // and finally return _result; }
gboolean _gtk_mnemonic_hash_activate (GtkMnemonicHash *mnemonic_hash, guint keyval) { GSList *list, *targets; GtkWidget *widget, *chosen_widget; GdkWindow *window; gboolean overloaded; targets = g_hash_table_lookup (mnemonic_hash->hash, GUINT_TO_POINTER (keyval)); if (!targets) return FALSE; overloaded = FALSE; chosen_widget = NULL; for (list = targets; list; list = list->next) { widget = GTK_WIDGET (list->data); window = gtk_widget_get_window (widget); if (gtk_widget_is_sensitive (widget) && gtk_widget_get_mapped (widget) && window && gdk_window_is_viewable (window)) { if (chosen_widget) { overloaded = TRUE; break; } else chosen_widget = widget; } } if (chosen_widget) { /* For round robin we put the activated entry on * the end of the list after activation */ targets = g_slist_remove (targets, chosen_widget); targets = g_slist_append (targets, chosen_widget); g_hash_table_insert (mnemonic_hash->hash, GUINT_TO_POINTER (keyval), targets); return gtk_widget_mnemonic_activate (chosen_widget, overloaded); } return FALSE; }
/* Window is viewable */ int clip_GDK_WINDOWISVIEWABLE(ClipMachine * cm) { C_widget *cwin = _fetch_cw_arg(cm); GdkWindow *win = NULL; CHECKCWID(cwin,GTK_IS_WIDGET); if (cwin && cwin->widget) win = cwin->widget->window; _clip_retl(cm, gdk_window_is_viewable(win)); return 0; err: return 1; }
static VALUE gdkwin_is_viewable(VALUE self) { return CBOOL2RVAL(gdk_window_is_viewable(_SELF(self))); }
/*! \brief rtt_update_values() is called for each runtime text to update it's label (label is periodic and not every time due to pango speed problems) \param key (gpointer) unused \param value (gpointer) pointer to Rt_Slider \param data (gpointer) unused */ G_MODULE_EXPORT void rtt_update_values(gpointer key, gpointer value, gpointer data) { static GRand *rand = NULL; static GMutex *rtv_mutex = NULL; Rt_Text *rtt = NULL; gint count = 0; gint last_upd = 0; gint precision = 0; gfloat current = 0.0; gfloat previous = 0.0; GArray *history = NULL; gchar * tmpbuf = NULL; gchar * tmpbuf2 = NULL; rtt = (Rt_Text *)value; if (!rtt) return; if (!rand) rand = g_rand_new(); if (!rtv_mutex) rtv_mutex = DATA_GET(global_data,"rtv_mutex"); count = rtt->count; last_upd = rtt->last_upd; history = (GArray *)DATA_GET(rtt->object,"history"); precision = (GINT)DATA_GET(rtt->object,"precision"); if (!history) return; if ((GINT)history->len-2 <= 0) return; g_mutex_lock(rtv_mutex); current = g_array_index(history, gfloat, history->len-1); previous = g_array_index(history, gfloat, history->len-2); g_mutex_unlock(rtv_mutex); if (GTK_IS_WIDGET(GTK_WIDGET(rtt->textval)->window)) if (!gdk_window_is_viewable(GTK_WIDGET(rtt->textval)->window)) return; if ((current != previous) || (DATA_GET(global_data,"forced_update")) || (rtt->textval && ((abs(count-last_upd)%g_rand_int_range(rand,25,50)) == 0))) { tmpbuf = g_strdup_printf("%1$.*2$f",current,precision); gdk_threads_enter(); if (rtt->markup) { tmpbuf2 = g_strconcat(rtt->label_prefix,tmpbuf,rtt->label_suffix,NULL); gtk_label_set_markup(GTK_LABEL(rtt->textval),tmpbuf2); g_free(tmpbuf2); } else gtk_label_set_text(GTK_LABEL(rtt->textval),tmpbuf); gdk_threads_leave(); g_free(tmpbuf); last_upd = count; } if (last_upd > 5000) last_upd = 0; count++; if (count > 5000) count = 0; rtt->count = count; rtt->last_upd = last_upd; return; }