Revision
63
Author
emsmith
Date
2006-12-08 14:38:45 -0800 (Fri, 08 Dec 2006)

Log Message

Oops, typos in window and actions class with new features

Modified Paths

Diff

Modified: desktop/trunk/lib/actions.class.php (62 => 63)


--- desktop/trunk/lib/actions.class.php	2006-12-08 20:08:34 UTC (rev 62)
+++ desktop/trunk/lib/actions.class.php	2006-12-08 22:38:45 UTC (rev 63)
@@ -11,7 +11,7 @@
  * @link         http://callicore.net/desktop
  * @license      http://www.opensource.org/licenses/gpl-license.php GPL
  * @version      $Id$
- * @since        Php 5.2.0
+ * @since        Php 5.1.0
  * @package      callicore
  * @subpackage   desktop
  * @category     lib
@@ -53,11 +53,11 @@
 	 */
 	public function __construct()
 	{
-		if(!is_null(self::$singleton))
+		if (!is_null(self::$singleton))
 		{
-			throw new Exception(CC::i18n(
+			throw new CC_Exception(
 			'%1$s is a singleton class - use %1$s::instance() to retrieve the current object',
-			'CC_Actions'));
+			'CC_Actions');
 		}
 		self::$singleton = $this;
 
@@ -66,6 +66,45 @@
 	}
 
 	/**
+	 * public function get_group
+	 *
+	 * returns action group
+	 *
+	 * @param string $group name of action group to get
+	 * @return instanceof GtkActionGroup
+	 */
+	public function get_group($group)
+	{
+		return isset($this->groups[$group]) ? $this->groups[$group] : NULL;
+	}
+
+	/**
+	 * public function list_groups
+	 *
+	 * returns an array of all current gtkactiongroups
+	 *
+	 * @return array all current groups stored
+	 */
+	public function list_groups()
+	{
+		return $this->groups;
+	}
+
+	/**
+	 * public function get_action
+	 *
+	 * returns an action from a group (shortcut)
+	 *
+	 * @param string $group name of action group to get
+	 * @param string $action name of action to get
+	 * @return instanceof GtkAction
+	 */
+	public function get_action($group, $action)
+	{
+		return $this->get_group($group)->get_action($action);
+	}
+
+	/**
 	 * public function get_accel
 	 *
 	 * returns GtkAccelGroup instance, use this to set it in the right window
@@ -136,11 +175,11 @@
 	{
 		$tips = CC_Tooltips::instance();
 		$item = $this->get_action($group, $action);
-		if($item instanceof GtkRadioAction)
+		if ($item instanceof GtkRadioAction)
 		{
 			$button = new GtkRadioButton();
 		}
-		elseif($item instanceof GtkToggleAction)
+		elseif ($item instanceof GtkToggleAction)
 		{
 			$button = new GtkCheckButton();
 		}
@@ -195,33 +234,6 @@
 	}
 
 	/**
-	 * public function get_group
-	 *
-	 * returns action group
-	 *
-	 * @param string $group name of action group to get
-	 * @return instanceof GtkActionGroup
-	 */
-	public function get_group($group)
-	{
-		return isset($this->groups[$group]) ? $this->groups[$group] : NULL;
-	}
-
-	/**
-	 * public function get_action
-	 *
-	 * returns an action from a group (shortcut)
-	 *
-	 * @param string $group name of action group to get
-	 * @param string $action name of action to get
-	 * @return instanceof GtkAction
-	 */
-	public function get_action($group, $action)
-	{
-		return $this->get_group($group)->get_action($action);
-	}
-
-	/**
 	 * public function add_group
 	 *
 	 * adds a new group with the specific name
@@ -236,9 +248,9 @@
 	}
 
 	/**
-	 * public function add_actions
+	 * public function add_action
 	 *
-	 * adds actions to a specific group (shortcut)
+	 * adds and action to a specific group (shortcut)
 	 * definition is array(
 	 * 'type' => action|toggle|radio,
 	 * 'callback' => php callback,
@@ -251,62 +263,154 @@
 	 * 'value' => value for radio action,
 	 * 'radio' => for radio items, the name of the action to group with
 	 * );
-	 * 
 	 *
 	 * @param string $group group to add to
-	 * @param array $definitions array of action definitions
+	 * @param array $def action definition array
 	 * @return void
 	 */
-	public function add_actions($group, $definitions)
+	public function add_action($group, $def)
 	{
-		if(!isset($this->groups[$group]))
+		if (!isset($this->groups[$group]))
 		{
 			$this->add_group($group);
 		}
 		$group = $this->get_group($group);
-		foreach($definitions as $def)
+
+		if (!isset($def['image']))
 		{
-			if(!isset($def['image']))
+			$def['image'] = NULL;
+		}
+		switch ($def['type'])
+		{
+			case 'radio':
+				$action = new GtkRadioAction($def['name'], CC::i18n($def['label']), CC::i18n($def['tooltip']),$def['image'],$def['value']);
+				$signal = 'toggled';
+				break;
+			case 'toggle':
+				$action = new GtkToggleAction($def['name'], CC::i18n($def['label']), CC::i18n($def['tooltip']),$def['image']);
+				$signal = 'toggled';
+				break;
+			default:
+				$action = new GtkAction($def['name'], CC::i18n($def['label']), CC::i18n($def['tooltip']),$def['image']);
+				$signal = 'activate';
+		}
+		$action->set_property('short-label', isset($def['short-label']) ? CC::i18n($def['short-label']) : NULL);
+		if (isset($def['callback']))
+		{
+			$action->connect($signal, $def['callback']);
+		}
+		if (isset($def['accel']))
+		{
+			$action->set_accel_group($this->accel);
+			$group->add_action_with_accel($action, $def['accel']);
+		}
+		else
+		{
+			$group->add_action($action);
+		}
+		if (isset($def['radio']))
+		{
+			$action->set_group($group->get_action($def['radio']));
+		}
+		return;
+	}
+
+	/**
+	 * public function add_actions
+	 *
+	 * adds an array of actions - shortcut for add_action
+	 *
+	 * @param string $group group to add to
+	 * @param array $definitions array of action definitions
+	 * @return void
+	 */
+	public function add_actions($group, $definitions)
+	{
+		foreach ($definitions as $def)
+		{
+			$this->add_action($group, $def);
+		}
+		return;
+	}
+
+	/**
+	 * public function connect_instance
+	 *
+	 * connects ALL ACTIONS in a specific group automatically to a
+	 *
+	 * @param string $group group to add to
+	 * @param array $definitions array of action definitions
+	 * @return void
+	 */
+	public function connect_instance($group, $object)
+	{
+		$list = $this->get_group($group)->list_actions();
+		foreach($list as $action)
+		{
+			$name = $action->get_name();
+			$methods = array(
+				'on_' . $name . '_activate',
+				'on_' . $name . '_toggled',
+				'on_action_' . $name . '_activate',
+				'on_action_' . $name . '_toggled'
+			);
+
+			foreach($methods as $method)
 			{
-				$def['image'] = NULL;
+				if(method_exists($object,  $method))
+				{
+					$action->connect('activate', array($object, $method));
+				}
 			}
-			switch($def['type'])
-			{
-				case 'radio':
-					$action = new GtkRadioAction($def['name'], CC::i18n($def['label']), CC::i18n($def['tooltip']),$def['image'],$def['value']);
-					$signal = 'toggled';
-					break;
-				case 'toggle':
-					$action = new GtkToggleAction($def['name'], CC::i18n($def['label']), CC::i18n($def['tooltip']),$def['image']);
-					$signal = 'toggled';
-					break;
-				default:
-					$action = new GtkAction($def['name'], CC::i18n($def['label']), CC::i18n($def['tooltip']),$def['image']);
-					$signal = 'activate';
-			}
-			$action->set_property('short-label', isset($def['short-label']) ? CC::i18n($def['short-label']) : NULL);
-			if(isset($def['callback']))
-			{
-				$action->connect($signal, $def['callback']);
-			}
-			if(isset($def['accel']))
-			{
-				$action->set_accel_group($this->accel);
-				$group->add_action_with_accel($action, $def['accel']);
-			}
-			else
-			{
-				$group->add_action($action);
-			}
-			if(isset($def['radio']))
-			{
-				$action->set_group($group->get_action($def['radio']));
-			}
 		}
 		return;
 	}
 
 	/**
+	 * public function connect
+	 *
+	 * connects ALL ACTIONS in a specific group to a callback
+	 *
+	 * @param string $group group to add to
+	 * @param array $definitions array of action definitions
+	 * @return void
+	 */
+	public function connect_all($group, $signal, $callback)
+	{
+		$args = func_get_args();
+		array_shift($args);
+		$list = $this->get_group($group)->list_actions();
+		foreach($list as $action)
+		foreach ($group as $action)
+		{
+			call_user_func_array(array($action, 'connect'), $args);
+		}
+		return;
+	}
+
+	/**
+	 * public function connect_simple
+	 *
+	 * connects ALL ACTIONS in a specific group to a callback using connect_simple
+	 *
+	 * @param string $group group to add to
+	 * @param array $definitions array of action definitions
+	 * @return void
+	 */
+	public function connect_all_simple($group, $signal, $callback)
+	{
+		// need list groups and list actions
+		$args = func_get_args();
+		array_shift($args);
+		$list = $this->get_group($group)->list_actions();
+		foreach($list as $action)
+		{
+			call_user_func_array(array($action, 'connect_simple'), $args);
+		}
+		return;
+	}
+
+	/**
 	 * static public function instance
 	 *
 	 * this is how items can access the actions
@@ -315,7 +419,7 @@
 	 */
 	static public function instance()
 	{
-		if(is_null(self::$singleton))
+		if (is_null(self::$singleton))
 		{
 			self::$singleton = new CC_Actions();
 		}
@@ -331,7 +435,7 @@
 	 */
 	public function __clone()
 	{
-		throw new Exception(CC::i18n('Cannot clone singleton object %s', 'CC_Actions'));
+		throw new CC_Exception('Cannot clone singleton object %s', 'CC_Actions');
 		return;
 	}
 }

Modified: desktop/trunk/lib/window.class.php (62 => 63)


--- desktop/trunk/lib/window.class.php	2006-12-08 20:08:34 UTC (rev 62)
+++ desktop/trunk/lib/window.class.php	2006-12-08 22:38:45 UTC (rev 63)
@@ -31,20 +31,26 @@
 	 * windows can be minimized, maximized and fullscreened
 	 * @var $minimized bool
 	 */
-	protected $minimized = FALSE;
+	protected $minimized = false;
 
 	/**
 	 * windows can be minimized, maximized and fullscreened
 	 * @var $maximized bool
 	 */
-	protected $maximized = FALSE;
+	protected $maximized = false;
 
 	/**
 	 * windows can be minimized, maximized and fullscreened
 	 * @var $fullscreen bool
 	 */
-	protected $fullscreen = FALSE;
+	protected $fullscreen = false;
 
+	/**
+	 * when used with window manager, window is modal
+	 * @var $modal bool
+	 */
+	protected $modal = false;
+
 	//----------------------------------------------------------------
 	//             Setup
 	//----------------------------------------------------------------