summaryrefslogtreecommitdiffhomepage
path: root/mixgtk/mixgtk_input.c
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2001-05-24 00:38:38 +0000
committerJose Antonio Ortega Ruiz <jao@gnu.org>2001-05-24 00:38:38 +0000
commitb21ee3c2ea317e4ac503330ac195f0be1cbfad1a (patch)
treeb6b79fd6994a01da477015a3a6c7eb44f49c4b5c /mixgtk/mixgtk_input.c
parentc3773eaf619976d302a05d3b6a02158b6f5ce9cc (diff)
downloadmdk-b21ee3c2ea317e4ac503330ac195f0be1cbfad1a.tar.gz
mdk-b21ee3c2ea317e4ac503330ac195f0be1cbfad1a.tar.bz2
deferred dialog creation
Diffstat (limited to 'mixgtk/mixgtk_input.c')
-rw-r--r--mixgtk/mixgtk_input.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/mixgtk/mixgtk_input.c b/mixgtk/mixgtk_input.c
index 8726bab..95c697a 100644
--- a/mixgtk/mixgtk_input.c
+++ b/mixgtk/mixgtk_input.c
@@ -37,26 +37,24 @@ static const gchar *WGT_NAMES_[SIZE_] = {
"word_b4", "word_b5", "word_decimal", "word_reset", "word_ok"
};
-static GtkDialog *dialog_;
+static GtkDialog *dialog_ = NULL;
static GtkWidget *childs_[SIZE_];
static input_callback_t callback_;
static gpointer data_;
-/* init */
-extern gboolean
-mixgtk_input_init (void)
+static void
+init_dialog_ (void)
{
gint k;
- dialog_ = GTK_DIALOG (mixgtk_widget_factory_get (MIXGTK_WIDGET_WORD_DIALOG));
- g_return_val_if_fail (dialog_ != NULL, FALSE);
+ dialog_ = GTK_DIALOG (mixgtk_widget_factory_get_dialog (MIXGTK_WORD_DIALOG));
+ g_assert (dialog_ != NULL);
for (k = 0; k < SIZE_; ++k)
{
- childs_[k] = mixgtk_widget_factory_get_by_name (WGT_NAMES_[k]);
- g_return_val_if_fail (childs_[k] != NULL, FALSE);
+ childs_[k] = mixgtk_widget_factory_get_child_by_name
+ (MIXGTK_WORD_DIALOG, WGT_NAMES_[k]);
+ g_assert (childs_[k] != NULL);
}
- return TRUE;
-
}
static void
@@ -84,6 +82,7 @@ void
mixgtk_input_word (const gchar *message, mix_word_t def,
input_callback_t cb, gpointer data)
{
+ if (!dialog_) init_dialog_ ();
gtk_label_set_text (GTK_LABEL (childs_[MSG_]), message);
set_word_ (def);
callback_ = cb;