~ubuntu-branches/ubuntu/maverick/ekiga/maverick

« back to all changes in this revision

Viewing changes to lib/engine/framework/gmconf-bridge.h

  • Committer: Bazaar Package Importer
  • Author(s): Eugen Dedu, Eugen Dedu, Loic Minier
  • Date: 2008-09-27 10:00:00 UTC
  • mfrom: (1.1.8 upstream)
  • mto: (1.4.1 squeeze)
  • mto: This revision was merged to the branch mainline in revision 38.
  • Revision ID: james.westby@ubuntu.com-20080927100000-l5k5werb6czr5b3h
Tags: 3.0.1-1
[ Eugen Dedu ]
* New version.  (Closes: #500089).
* Add our own changelog file in /usr/share/doc.
* Remove gnomemeeting transitional package.
* Discover new interfaces.  (Closes: #488199).
* Compile with dbus support.  (Closes: #467212).
* Numeric keypad inserts digits at correct position.  (Closes: #440159).
* Use libnotify upon call.  (Closes: #412604).
* Symlink identical GNOME help files, to reduce size.  (Closes: #505536).
* Explicitely build-depends on a few dev packages, even if they were
  pulled out anyway by the other dependencies.

[ Loic Minier ]
* Use clean:: instead of clean: in rules.
* Don't disable Uploaders: generation for control.in -> control generation
  in rules.
* Fix some tabs which were size 4 anyway.
* Generate a PO template during build by calling intltool-update -p in
  install; thanks Ubuntu and Martin Pitt; closes: #505535.
* Also let the -dbg depend on ${misc:Depends}.
* Cleanup rules; in particular, use dpkg-parsechangelog and honor
  distclean/clean failures, remove old clean rules, commented out stuff,
  gtk-only stuff.
* Pass -s to dh_* in binary-arch.
* Use debian/*.links and debian/*.manpages instead of symlink manually or
  passing files to dh_installman.
* Use ftp.gnome.org in copyright.
* Switch to quilt and fix target deps in the process; build-dep on quilt
  instead of dpatch; rename news.dpatch to 00_news.patch and refresh;
  replace 00list with series.
* Install autotools-dev config.guess and .sub after patching.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
/*
 
3
 * Ekiga -- A VoIP and Video-Conferencing application
 
4
 * Copyright (C) 2000-2007 Damien Sandras
 
5
 
 
6
 * This program is free software; you can  redistribute it and/or modify
 
7
 * it under the terms of the GNU General Public License as published by
 
8
 * the Free Software Foundation; either version 2 of the License, or (at
 
9
 * your option) any later version. This program is distributed in the hope
 
10
 * that it will be useful, but WITHOUT ANY WARRANTY; without even the
 
11
 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
12
 * See the GNU General Public License for more details.
 
13
 *
 
14
 * You should have received a copy of the GNU General Public License along
 
15
 * with this program; if not, write to the Free Software Foundation, Inc.,
 
16
 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 
17
 *
 
18
 * Ekiga is licensed under the GPL license and as a special exception, you
 
19
 * have permission to link or otherwise combine this program with the
 
20
 * programs OPAL, OpenH323 and PWLIB, and distribute the combination, without
 
21
 * applying the requirements of the GNU GPL to the OPAL, OpenH323 and PWLIB
 
22
 * programs, as long as you do follow the requirements of the GNU GPL for all
 
23
 * the rest of the software thus combined.
 
24
 */
 
25
 
 
26
 
 
27
/*
 
28
 *                         gmconf-bridge.h  -  description
 
29
 *                         ------------------------------------------
 
30
 *   begin                : written in 2008 by Damien Sandras
 
31
 *   copyright            : (c) 2008 by Damien Sandras
 
32
 *   description          : declaration of an object able to do the bridging
 
33
 *                          between gmconf and any object
 
34
 *
 
35
 */
 
36
 
 
37
#ifndef __GMCONF_BRIDGE_H__
 
38
#define __GMCONF_BRIDGE_H__
 
39
 
 
40
#include <vector>
 
41
#include <sigc++/sigc++.h>
 
42
 
 
43
#include "gmconf.h"
 
44
#include "services.h"
 
45
 
 
46
namespace Ekiga
 
47
{
 
48
  /**
 
49
   * This is a vector of string corresponding to the GMConf keys
 
50
   */
 
51
  typedef std::vector<std::string> ConfKeys;
 
52
 
 
53
 
 
54
  /** 
 
55
   * This class implements a bridge between an Ekiga::Service and its
 
56
   * configuration stored in GMConf.
 
57
   *
 
58
   * This class has several purposes :
 
59
   * - abstract the configuration stuff from the engine classes
 
60
   * - keep the GMConf idea of notifiers triggered when the value associated
 
61
   *   with a key changes, but instead of reacting to it in the object, 
 
62
   *   directly, update it using its public API
 
63
   *
 
64
   * This could be replaced at some point by a C++ implementation of GMConf,
 
65
   * but for now it is a good abstraction layer : The service exposes its API
 
66
   * but does not care about storing the configuration. GMConf stores the 
 
67
   * configuration (the model), and the bridge updates the Ekiga::Service (the
 
68
   * view), when a controller updates the configuration (the prefs window or
 
69
   * an external program).
 
70
   *
 
71
   * It should only monitor keys representing properties of the Ekiga::Service.
 
72
   */
 
73
 
 
74
  class ConfBridge
 
75
    {
 
76
  public:
 
77
 
 
78
      /** The constructor
 
79
       * @param _service is the Ekiga::Service the bridge will update
 
80
       */
 
81
      ConfBridge (Ekiga::Service & _service) : service (_service) {};
 
82
 
 
83
 
 
84
      /** Load notifiers for the vector of keys given as argument
 
85
       * @param keys is a vector of keys for which the ConfBridge will trigger 
 
86
       * GmConf notifers. They are triggered when the value associated with the
 
87
       * key changes, or when this method is called.
 
88
       */
 
89
      void load (ConfKeys & keys);
 
90
 
 
91
 
 
92
      /** This signal is emitted when a notifier is triggered for a key
 
93
       * @param key is the GmConf key whose value changed
 
94
       * @param entry is the new GmConf entry
 
95
       */
 
96
      sigc::signal<void, std::string /*key*/, GmConfEntry * /*entry*/> property_changed;
 
97
 
 
98
  protected :
 
99
      Ekiga::Service & service;
 
100
    };
 
101
};
 
102
#endif