app/tests: Generalize gimp_ui_find_non_toolbox_dock_window()

Generalize gimp_ui_find_non_toolbox_dock_window() by renaming it to
gimp_ui_find_dock_window() and adding a parameter with a function that
will be used to find the toolbox.
This commit is contained in:
Martin Nordholts 2010-03-07 08:55:18 +01:00
parent a90a64707c
commit bdfbddd5e8
1 changed files with 22 additions and 5 deletions

View File

@ -35,6 +35,7 @@
#include "widgets/gimpdockwindow.h" #include "widgets/gimpdockwindow.h"
#include "widgets/gimphelp-ids.h" #include "widgets/gimphelp-ids.h"
#include "widgets/gimpsessioninfo.h" #include "widgets/gimpsessioninfo.h"
#include "widgets/gimptoolbox.h"
#include "widgets/gimptooloptionseditor.h" #include "widgets/gimptooloptionseditor.h"
#include "widgets/gimpuimanager.h" #include "widgets/gimpuimanager.h"
@ -54,6 +55,9 @@
#define GIMP_UI_POSITION_EPSILON 1 #define GIMP_UI_POSITION_EPSILON 1
typedef gboolean (*GimpUiTestFunc) (GObject *object);
typedef struct typedef struct
{ {
int avoid_sizeof_zero; int avoid_sizeof_zero;
@ -78,7 +82,9 @@ static void gimp_ui_switch_back_to_multi_window_mode (GimpTestFixture
gconstpointer data); gconstpointer data);
static GimpUIManager * gimp_ui_get_ui_manager (Gimp *gimp); static GimpUIManager * gimp_ui_get_ui_manager (Gimp *gimp);
static void gimp_ui_synthesize_delete_event (GtkWidget *widget); static void gimp_ui_synthesize_delete_event (GtkWidget *widget);
static GtkWidget * gimp_ui_find_non_toolbox_dock_window (GimpDialogFactory *dialog_factory); static GtkWidget * gimp_ui_find_dock_window (GimpDialogFactory *dialog_factory,
GimpUiTestFunc predicate);
static gboolean gimp_ui_not_toolbox_window (GObject *object);
int main(int argc, char **argv) int main(int argc, char **argv)
@ -268,7 +274,8 @@ gimp_ui_restore_recently_closed_dock (GimpTestFixture *fixture,
GList *session_infos = NULL; GList *session_infos = NULL;
/* Find a non-toolbox dock window */ /* Find a non-toolbox dock window */
dock_window = gimp_ui_find_non_toolbox_dock_window (gimp_dialog_factory_get_singleton ()); dock_window = gimp_ui_find_dock_window (gimp_dialog_factory_get_singleton (),
gimp_ui_not_toolbox_window);
g_assert (dock_window != NULL); g_assert (dock_window != NULL);
/* Count number of docks */ /* Count number of docks */
@ -326,7 +333,8 @@ gimp_ui_tab_toggle_dont_change_position (GimpTestFixture *fixture,
gint h_after_show = -1; gint h_after_show = -1;
/* Find a non-toolbox dock window */ /* Find a non-toolbox dock window */
dock_window = gimp_ui_find_non_toolbox_dock_window (gimp_dialog_factory_get_singleton ()); dock_window = gimp_ui_find_dock_window (gimp_dialog_factory_get_singleton (),
gimp_ui_not_toolbox_window);
g_assert (dock_window != NULL); g_assert (dock_window != NULL);
g_assert (gtk_widget_get_visible (dock_window)); g_assert (gtk_widget_get_visible (dock_window));
@ -509,11 +517,14 @@ gimp_ui_synthesize_delete_event (GtkWidget *widget)
} }
static GtkWidget * static GtkWidget *
gimp_ui_find_non_toolbox_dock_window (GimpDialogFactory *dialog_factory) gimp_ui_find_dock_window (GimpDialogFactory *dialog_factory,
GimpUiTestFunc predicate)
{ {
GList *iter = NULL; GList *iter = NULL;
GtkWidget *dock_window = NULL; GtkWidget *dock_window = NULL;
g_return_val_if_fail (predicate != NULL, NULL);
for (iter = gimp_dialog_factory_get_session_infos (dialog_factory); for (iter = gimp_dialog_factory_get_session_infos (dialog_factory);
iter; iter;
iter = g_list_next (iter)) iter = g_list_next (iter))
@ -521,7 +532,7 @@ gimp_ui_find_non_toolbox_dock_window (GimpDialogFactory *dialog_factory)
GtkWidget *widget = gimp_session_info_get_widget (iter->data); GtkWidget *widget = gimp_session_info_get_widget (iter->data);
if (GIMP_IS_DOCK_WINDOW (widget) && if (GIMP_IS_DOCK_WINDOW (widget) &&
! gimp_dock_window_has_toolbox (GIMP_DOCK_WINDOW (widget))) predicate (G_OBJECT (widget)))
{ {
dock_window = widget; dock_window = widget;
break; break;
@ -530,3 +541,9 @@ gimp_ui_find_non_toolbox_dock_window (GimpDialogFactory *dialog_factory)
return dock_window; return dock_window;
} }
static gboolean
gimp_ui_not_toolbox_window (GObject *object)
{
return ! gimp_dock_window_has_toolbox (GIMP_DOCK_WINDOW (object));
}