Blame tests/test-panel.c

Packit Service c6b782
#include <dazzle.h>
Packit Service c6b782
Packit Service c6b782
typedef enum
Packit Service c6b782
{
Packit Service c6b782
   COMMAND_SHOW,
Packit Service c6b782
   COMMAND_HIDE,
Packit Service c6b782
   COMMAND_EXIT
Packit Service c6b782
} Command;
Packit Service c6b782
Packit Service c6b782
#define INTERVAL 500
Packit Service c6b782
Packit Service c6b782
static struct {
Packit Service c6b782
  gint interval;
Packit Service c6b782
  Command command;
Packit Service c6b782
} commands[] = {
Packit Service c6b782
  { 1000, COMMAND_SHOW },
Packit Service c6b782
  { INTERVAL, COMMAND_SHOW },
Packit Service c6b782
  { INTERVAL, COMMAND_HIDE },
Packit Service c6b782
  { INTERVAL, COMMAND_SHOW },
Packit Service c6b782
  { INTERVAL, COMMAND_HIDE },
Packit Service c6b782
  { INTERVAL, COMMAND_SHOW },
Packit Service c6b782
  { INTERVAL, COMMAND_HIDE },
Packit Service c6b782
  { INTERVAL, COMMAND_SHOW },
Packit Service c6b782
  { INTERVAL, COMMAND_HIDE },
Packit Service c6b782
  { INTERVAL, COMMAND_SHOW },
Packit Service c6b782
  { INTERVAL, COMMAND_HIDE },
Packit Service c6b782
  { INTERVAL, COMMAND_SHOW },
Packit Service c6b782
  { INTERVAL, COMMAND_HIDE },
Packit Service c6b782
  { INTERVAL, COMMAND_SHOW },
Packit Service c6b782
  { INTERVAL, COMMAND_HIDE },
Packit Service c6b782
  { INTERVAL, COMMAND_SHOW },
Packit Service c6b782
  { INTERVAL, COMMAND_HIDE },
Packit Service c6b782
  { INTERVAL, COMMAND_SHOW },
Packit Service c6b782
  { INTERVAL, COMMAND_HIDE },
Packit Service c6b782
  { INTERVAL, COMMAND_SHOW },
Packit Service c6b782
  { INTERVAL, COMMAND_HIDE },
Packit Service c6b782
  { INTERVAL, COMMAND_SHOW },
Packit Service c6b782
  { INTERVAL, COMMAND_HIDE },
Packit Service c6b782
  { INTERVAL, COMMAND_SHOW },
Packit Service c6b782
  { INTERVAL, COMMAND_HIDE },
Packit Service c6b782
  { INTERVAL, COMMAND_SHOW },
Packit Service c6b782
  { INTERVAL, COMMAND_HIDE },
Packit Service c6b782
  { INTERVAL, COMMAND_SHOW },
Packit Service c6b782
  { INTERVAL, COMMAND_HIDE },
Packit Service c6b782
  { INTERVAL, COMMAND_SHOW },
Packit Service c6b782
  { INTERVAL, COMMAND_HIDE },
Packit Service c6b782
  { INTERVAL, COMMAND_SHOW },
Packit Service c6b782
  { INTERVAL, COMMAND_HIDE },
Packit Service c6b782
  { INTERVAL, COMMAND_SHOW },
Packit Service c6b782
  { INTERVAL, COMMAND_HIDE },
Packit Service c6b782
  { INTERVAL, COMMAND_SHOW },
Packit Service c6b782
  { INTERVAL, COMMAND_HIDE },
Packit Service c6b782
  { INTERVAL, COMMAND_SHOW },
Packit Service c6b782
  { INTERVAL, COMMAND_HIDE },
Packit Service c6b782
  { INTERVAL, COMMAND_SHOW },
Packit Service c6b782
  { INTERVAL, COMMAND_HIDE },
Packit Service c6b782
  { INTERVAL, COMMAND_SHOW },
Packit Service c6b782
  { INTERVAL, COMMAND_HIDE },
Packit Service c6b782
  { INTERVAL, COMMAND_SHOW },
Packit Service c6b782
  { INTERVAL, COMMAND_HIDE },
Packit Service c6b782
  { INTERVAL, COMMAND_SHOW },
Packit Service c6b782
  { INTERVAL, COMMAND_HIDE },
Packit Service c6b782
  { INTERVAL, COMMAND_SHOW },
Packit Service c6b782
  { INTERVAL, COMMAND_HIDE },
Packit Service c6b782
  { 300, COMMAND_EXIT },
Packit Service c6b782
};
Packit Service c6b782
static gint current_command;
Packit Service c6b782
static GtkWidget *dockbin;
Packit Service c6b782
static GtkWidget *class_entry;
Packit Service c6b782
static GTimer *timer;
Packit Service c6b782
Packit Service c6b782
static void
Packit Service c6b782
toggle_all (gboolean show)
Packit Service c6b782
{
Packit Service c6b782
  DzlDockRevealer *edge;
Packit Service c6b782
  DzlDockBin *dock = DZL_DOCK_BIN (dockbin);
Packit Service c6b782
Packit Service c6b782
  edge = DZL_DOCK_REVEALER (dzl_dock_bin_get_left_edge (dock));
Packit Service c6b782
  dzl_dock_revealer_set_reveal_child (edge, show);
Packit Service c6b782
Packit Service c6b782
  edge = DZL_DOCK_REVEALER (dzl_dock_bin_get_right_edge (dock));
Packit Service c6b782
  dzl_dock_revealer_set_reveal_child (edge, show);
Packit Service c6b782
Packit Service c6b782
  edge = DZL_DOCK_REVEALER (dzl_dock_bin_get_bottom_edge (dock));
Packit Service c6b782
  dzl_dock_revealer_set_reveal_child (edge, show);
Packit Service c6b782
}
Packit Service c6b782
Packit Service c6b782
static void
Packit Service c6b782
adjust_sizes (void)
Packit Service c6b782
{
Packit Service c6b782
  DzlDockBin *dock = DZL_DOCK_BIN (dockbin);
Packit Service c6b782
  GtkWidget *edge;
Packit Service c6b782
Packit Service c6b782
  edge = dzl_dock_bin_get_left_edge (dock);
Packit Service c6b782
  dzl_dock_revealer_set_position (DZL_DOCK_REVEALER (edge), 300);
Packit Service c6b782
Packit Service c6b782
  edge = dzl_dock_bin_get_right_edge (dock);
Packit Service c6b782
  dzl_dock_revealer_set_position (DZL_DOCK_REVEALER (edge), 300);
Packit Service c6b782
Packit Service c6b782
  edge = dzl_dock_bin_get_bottom_edge (dock);
Packit Service c6b782
  dzl_dock_revealer_set_position (DZL_DOCK_REVEALER (edge), 300);
Packit Service c6b782
}
Packit Service c6b782
Packit Service c6b782
static void
Packit Service c6b782
grab_class_entry (GtkWidget *button)
Packit Service c6b782
{
Packit Service c6b782
  gtk_widget_grab_focus (class_entry);
Packit Service c6b782
}
Packit Service c6b782
Packit Service c6b782
static gboolean
Packit Service c6b782
process_command (gpointer data)
Packit Service c6b782
{
Packit Service c6b782
  switch (commands [current_command].command)
Packit Service c6b782
    {
Packit Service c6b782
    case COMMAND_SHOW:
Packit Service c6b782
      toggle_all (TRUE);
Packit Service c6b782
      break;
Packit Service c6b782
Packit Service c6b782
    case COMMAND_HIDE:
Packit Service c6b782
      toggle_all (FALSE);
Packit Service c6b782
      break;
Packit Service c6b782
Packit Service c6b782
    case COMMAND_EXIT:
Packit Service c6b782
    default:
Packit Service c6b782
      gtk_main_quit ();
Packit Service c6b782
      return G_SOURCE_REMOVE;
Packit Service c6b782
    }
Packit Service c6b782
Packit Service c6b782
  g_timeout_add (commands [++current_command].interval,
Packit Service c6b782
                 process_command,
Packit Service c6b782
                 NULL);
Packit Service c6b782
Packit Service c6b782
  return G_SOURCE_REMOVE;
Packit Service c6b782
}
Packit Service c6b782
Packit Service c6b782
static void
Packit Service c6b782
log_handler (const gchar    *domain,
Packit Service c6b782
             GLogLevelFlags  flags,
Packit Service c6b782
             const gchar    *message,
Packit Service c6b782
             gpointer        user_data)
Packit Service c6b782
{
Packit Service c6b782
  gdouble t = g_timer_elapsed (timer, NULL);
Packit Service c6b782
Packit Service c6b782
  g_print ("%s: time=%0.5lf %s\n", domain, t, message);
Packit Service c6b782
}
Packit Service c6b782
Packit Service c6b782
static void
Packit Service c6b782
load_css (void)
Packit Service c6b782
{
Packit Service c6b782
  g_autoptr(GtkCssProvider) provider = NULL;
Packit Service c6b782
Packit Service c6b782
  provider = dzl_css_provider_new ("resource:///org/gnome/dazzle/themes");
Packit Service c6b782
  gtk_style_context_add_provider_for_screen (gdk_screen_get_default (),
Packit Service c6b782
                                             GTK_STYLE_PROVIDER (provider),
Packit Service c6b782
                                             GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
Packit Service c6b782
}
Packit Service c6b782
Packit Service c6b782
gint
Packit Service c6b782
main (gint   argc,
Packit Service c6b782
      gchar *argv[])
Packit Service c6b782
{
Packit Service c6b782
  GtkBuilder *builder = NULL;
Packit Service c6b782
  GtkWindow *window = NULL;
Packit Service c6b782
  GActionGroup *group;
Packit Service c6b782
  GError *error = NULL;
Packit Service c6b782
  g_autofree gchar *ui_path = g_build_filename (TEST_DATA_DIR, "test-panel.ui", NULL);
Packit Service c6b782
Packit Service c6b782
  gtk_init (&argc, &argv);
Packit Service c6b782
Packit Service c6b782
  load_css ();
Packit Service c6b782
Packit Service c6b782
  timer = g_timer_new ();
Packit Service c6b782
Packit Service c6b782
  builder = gtk_builder_new ();
Packit Service c6b782
  gtk_builder_add_from_file (builder, ui_path, &error);
Packit Service c6b782
  g_assert_no_error (error);
Packit Service c6b782
Packit Service c6b782
  window = GTK_WINDOW (gtk_builder_get_object (builder, "window"));
Packit Service c6b782
  g_signal_connect (window, "delete-event", gtk_main_quit, NULL);
Packit Service c6b782
Packit Service c6b782
  dockbin = GTK_WIDGET (gtk_builder_get_object (builder, "dockbin"));
Packit Service c6b782
  /* _dzl_dock_item_printf (DZL_DOCK_ITEM (dockbin)); */
Packit Service c6b782
Packit Service c6b782
  group = gtk_widget_get_action_group (dockbin, "dockbin");
Packit Service c6b782
  gtk_widget_insert_action_group (GTK_WIDGET (window), "dockbin", group);
Packit Service c6b782
Packit Service c6b782
  adjust_sizes ();
Packit Service c6b782
Packit Service c6b782
  class_entry = GTK_WIDGET (gtk_builder_get_object (builder, "class_entry"));
Packit Service c6b782
Packit Service c6b782
#if 0
Packit Service c6b782
  gtk_builder_add_callback_symbol (builder, "toggle_all", G_CALLBACK (toggle_all));
Packit Service c6b782
#endif
Packit Service c6b782
  gtk_builder_add_callback_symbol (builder, "grab_class_entry", G_CALLBACK (grab_class_entry));
Packit Service c6b782
  gtk_builder_connect_signals (builder, dockbin);
Packit Service c6b782
Packit Service c6b782
  if (0)
Packit Service c6b782
  g_timeout_add (commands [0].interval,
Packit Service c6b782
                 process_command,
Packit Service c6b782
                 NULL);
Packit Service c6b782
Packit Service c6b782
  g_log_set_default_handler (log_handler, NULL);
Packit Service c6b782
Packit Service c6b782
  gtk_widget_grab_focus (GTK_WIDGET (gtk_builder_get_object (builder, "text_view")));
Packit Service c6b782
Packit Service c6b782
  gtk_window_maximize (window);
Packit Service c6b782
  gtk_window_present (window);
Packit Service c6b782
  gtk_main ();
Packit Service c6b782
Packit Service c6b782
  g_clear_object (&builder);
Packit Service c6b782
Packit Service c6b782
  return 0;
Packit Service c6b782
}