[maemo-commits] [maemo-commits] r8581 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . libhildonwm test

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Mon Dec 4 16:09:56 EET 2006
Author: moimart
Date: 2006-12-04 16:09:54 +0200 (Mon, 04 Dec 2006)
New Revision: 8581

Modified:
   projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog
   projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildonwm/hd-keys.c
   projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildonwm/hd-wm.c
   projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildonwm/hd-wm.h
   projects/haf/branches/maemo-af-desktop/hildon-desktop/test/test4.c
Log:

	* libhildonwm/hd-keys.c: Fixed shortcuts to active tn/ap buttons.
        * libhildonwm/hd-wm.[ch]:
        - Added method to have a reference of others menu.
        - Now hd-wm is able to focus any gtkwindow (and subclasses).
	* test/test4.c updated.
	* ChangeLog updated.



Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog	2006-12-04 14:05:03 UTC (rev 8580)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog	2006-12-04 14:09:54 UTC (rev 8581)
@@ -1,3 +1,10 @@
+2005-12-04  Moises Martinez  <moises.martinzes at nokia.com>
+
+	* libhildonwm/hd-keys.c: Fixed shortcuts to active tn/ap buttons.
+	* libhildonwm/hd-wm.[ch]: 
+	- Added method to have a reference of others menu.
+	- Now hd-wm is able to focus any gtkwindow (and subclasses).
+
 2006-12-01  Lucas Rocha  <lucas.rocha at nokia.com>
 
 	* hd-desktop.c: keep track of container plugin directory changes and

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildonwm/hd-keys.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildonwm/hd-keys.c	2006-12-04 14:05:03 UTC (rev 8580)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildonwm/hd-keys.c	2006-12-04 14:09:54 UTC (rev 8581)
@@ -154,9 +154,9 @@
   { HD_KEYS_GCONF_PATH "/window_minimize", HD_KEY_ACTION_MINIMIZE ,
     hd_keys_action_minimize, NULL},
   { HD_KEYS_GCONF_PATH "/task_switcher",   HD_KEY_ACTION_TASK_SWITCHER,
-    hd_keys_action_tn_activate, GINT_TO_POINTER (0) }, /* AS MENU */
+    hd_keys_action_tn_activate, GINT_TO_POINTER (HD_TN_ACTIVATE_MAIN_MENU) }, /* AS MENU */
   { HD_KEYS_GCONF_PATH "/task_launcher",   HD_KEY_ACTION_TASK_LAUNCHER,
-    hd_keys_action_tn_activate, GINT_TO_POINTER (0)}, /* OTHERS MENU */
+    hd_keys_action_tn_activate, GINT_TO_POINTER (HD_TN_ACTIVATE_OTHERS_MENU)}, /* OTHERS MENU */
   { HD_KEYS_GCONF_PATH "/power",           HD_KEY_ACTION_POWER,
     hd_keys_action_power, GINT_TO_POINTER(FALSE) },
   { HD_KEYS_GCONF_PATH "/home",            HD_KEY_ACTION_HOME,
@@ -182,19 +182,16 @@
   XDisplayKeycodes (GDK_DISPLAY(), &min_kc, &max_kc);
 
   for (keycode = min_kc; keycode <= max_kc; keycode++) 
+  {
+    for (col = 0; (k = XKeycodeToKeysym (GDK_DISPLAY(), keycode, col)) != NoSymbol; col++)
     {
-      for (col = 0; 
-	   (k = XKeycodeToKeysym (GDK_DISPLAY(), keycode, col)) != NoSymbol; 
-	   col++)
-        {
-          if (k == keysym && col == 1)
-              return TRUE;
+      if (k == keysym && col == 1)
+        return TRUE;
       
-          if (k == keysym)
-            break;
-        }
-      
-    }  
+      if (k == keysym)
+        break;
+    }
+  }  
 
   return FALSE;
 }

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildonwm/hd-wm.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildonwm/hd-wm.c	2006-12-04 14:05:03 UTC (rev 8580)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildonwm/hd-wm.c	2006-12-04 14:09:54 UTC (rev 8581)
@@ -143,6 +143,8 @@
 
   GList	       *app_switchers;
 
+  GtkWidget    *others_menu;
+
   /* stack for the launch banner messages. 
    * Needed to work round gtk(hindon)_infoprint issues.
    */
@@ -1510,6 +1512,28 @@
     XFree(xwins.wins);
 }
 
+static void 
+hd_wm_set_window_focus (GtkWindow *window, gboolean focus)
+{
+  g_assert (window && GTK_IS_WINDOW (window));
+	
+  gtk_window_set_accept_focus (window, focus);
+
+  if (focus)
+    gtk_window_present   (window);
+  else
+    gtk_window_set_focus (window, NULL);
+}
+
+void 
+hd_wm_set_others_menu_button (HDWM *hdwm, GtkWidget *widget)
+{
+  g_assert (hdwm && widget);
+  g_assert (HD_IS_WM (hdwm) && GTK_IS_WIDGET (widget));
+
+  hdwm->priv->others_menu = widget;
+}
+
 gboolean
 hd_wm_add_watched_window (HDWMWatchedWindow *win)
 {
@@ -1603,7 +1627,7 @@
 }
 
 void
-hd_wm_activate(guint32 what)
+hd_wm_activate_window (guint32 what, GtkWindow *window)
 {
   /*GtkWidget * button = NULL;*/
   HDWM *hdwm = hd_wm_get_singleton ();
@@ -1611,55 +1635,38 @@
   g_debug ("received request %d", what);
   
   if (what >= (int) HD_TN_ACTIVATE_LAST)
-    {
-      g_critical("Invalid value passed to hd_wm_activate()");
-      return;
-    }
+  {
+    g_critical("Invalid value passed to hd_wm_activate()");
+    return;
+  }
 
   switch (what)
-    {
-      case HD_TN_ACTIVATE_KEY_FOCUS:
-        g_debug ("Making TN focusable");
-        hdwm->priv->has_focus = TRUE;
-
-	g_debug ("%s: %d, set focus to tn to true",__FILE__,__LINE__);
-        /*hn_window_set_focus (tasknav,TRUE);*/
-        return;
-
-      case HD_TN_DEACTIVATE_KEY_FOCUS:
-        g_debug ("Making TN unfocusable");
-        hdwm->priv->has_focus = FALSE;
-
-	g_debug ("%s: %d, set focus to tn to false",__FILE__,__LINE__);
-	/*hn_window_set_focus (tasknav,FALSE);*/
-        return;
-        
-      case HD_TN_ACTIVATE_MAIN_MENU:
-        g_debug ("activating main menu");
-
-	g_debug ("%s: %d, hn_app_switcher_toggle_menu_button (hdwm->priv->app_switcher);",__FILE__,__LINE__);
-
-        return;
-
-      case HD_TN_ACTIVATE_LAST_APP_WINDOW:
-        g_debug ("passing focus to last active window");
-        hdwm->priv->has_focus = FALSE;
-        hd_wm_focus_active_window (hdwm);
-        return;
-        
-      default:
-       
-	g_debug ("%s: %d, try to activate button in tasknav",__FILE__,__LINE__);
- 	/*	
-	button = hn_window_get_button_focus (tasknav,what);
-        if(button)
-        {
-            g_debug ("activating some other button");
-            gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
-            g_signal_emit_by_name(button, "toggled");
-        }
-	*/
-    }
+  {
+    case HD_TN_ACTIVATE_KEY_FOCUS:
+      hdwm->priv->has_focus = TRUE;
+      if (window)
+        hd_wm_set_window_focus (window,TRUE); 
+      return;
+    case HD_TN_DEACTIVATE_KEY_FOCUS:
+      hdwm->priv->has_focus = FALSE;
+      if (window)
+        hd_wm_set_window_focus (window,FALSE);
+      return;
+    case HD_TN_ACTIVATE_MAIN_MENU:
+      g_debug ("activating main menu: signal");
+      g_debug ("%s: %d, hn_app_switcher_toggle_menu_button (hdwm->priv->app_switcher);",__FILE__,__LINE__);
+      return;
+    case HD_TN_ACTIVATE_LAST_APP_WINDOW:
+      hdwm->priv->has_focus = FALSE;
+      hd_wm_focus_active_window (hdwm);
+      return;
+    case HD_TN_ACTIVATE_OTHERS_MENU:
+      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (hdwm->priv->others_menu), TRUE);
+      g_signal_emit_by_name (hdwm->priv->others_menu, "toggled");
+      break;
+    default:
+      g_debug ("%s: %d, hd_wm_activate: deprecated. It was used to activate specific tasknavigator buttons",__FILE__,__LINE__);
+  }
 }
 
 static gboolean

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildonwm/hd-wm.h
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildonwm/hd-wm.h	2006-12-04 14:05:03 UTC (rev 8580)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildonwm/hd-wm.h	2006-12-04 14:09:54 UTC (rev 8581)
@@ -219,11 +219,16 @@
 /* keyboard handling functions */
 
 void
-hd_wm_activate(guint32 what);
+hd_wm_activate_window (guint32 what, GtkWindow *window);
 
+#define hd_wm_activate(what) hd_wm_activate_window (what,NULL)
+
 void
 hd_wm_focus_active_window (HDWM *hdwm);
 
+void 
+hd_wm_set_others_menu_button (HDWM *hdwm, GtkWidget *widget);
+
 gboolean
 hd_wm_fullscreen_mode (void);
 

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/test/test4.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/test/test4.c	2006-12-04 14:05:03 UTC (rev 8580)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/test/test4.c	2006-12-04 14:09:54 UTC (rev 8581)
@@ -1,38 +1,20 @@
+#include <libhildondesktop/hn-app-switcher.h>
 #include <libhildonwm/hd-wm.h>
 
-void 
-generic_callback (HDWM *hdwm, HDEntryInfo *info, gpointer data)
-{
-  g_debug ("ACTION: %s app name: %s",data,hd_entry_info_get_title (info));
-}
-
 int 
 main (int argc, char **argv)
 {
+  GtkWidget *win;
+	
   gtk_init (&argc,&argv);
 
   HDWM *wm = hd_wm_get_singleton ();
 
-  g_signal_connect (G_OBJECT (wm), 
-		    "entry_info_changed",
-		    G_CALLBACK (generic_callback),
-		    g_strdup ("info changed"));
-
-  g_signal_connect (G_OBJECT (wm),
-		    "entry_info_added",
-		    G_CALLBACK (generic_callback),
-		    g_strdup ("info added"));
-
-  g_signal_connect (G_OBJECT (wm),
-		    "entry_info_stack_changed",
-		    G_CALLBACK (generic_callback),
-		    g_strdup ("stack changed"));
-
-  g_signal_connect (G_OBJECT (wm),
-		    "entry_info_removed",
-		    G_CALLBACK (generic_callback),
-		    g_strdup ("info removed"));
-
+  win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  gtk_window_set_type_hint (GTK_WINDOW (win), GDK_WINDOW_TYPE_HINT_DESKTOP);
+  gtk_container_add (GTK_CONTAINER (win), hn_app_switcher_new ());
+  gtk_widget_show_all (win);
+  
   gtk_main ();
 	
   return 0;


More information about the maemo-commits mailing list