taskDDD - Tasks: task #8941, DDD should use a modern widget set

 
 

You are not allowed to post comments on this tracker with your current authentification level.

task #8941: DDD should use a modern widget set

Submitted by:  Peter Wainwright <pwainwright>
Submitted on:  Wed 31 Dec 2008 10:35:32 AM UTC  
Votes:  10  
 
Should Start On: Wed 31 Dec 2008 12:00:00 AM UTCShould be Finished on: Wed 31 Dec 2008 12:00:00 AM UTC
Category: NonePriority: 5 - Normal
Status: In ProgressPrivacy: Public
Percent Complete: 60%Assigned to: None
Open/Closed: OpenEffort: 0.00

Wed 31 Dec 2008 10:35:32 AM UTC, original submission:

The existing versions of DDD are based on the venerable Unix GUI toolkit, X/Motif. Calls to the X/Motif libraries are scattered liberally throughout the source code. We wish to separate the GUI from the main program logic, so that development of DDD can proceed without requiring simultaneous updates to N separate platform-specific implementations. In order to do this we will introduce a “shim” or “wrapper” which will connect DDD to the underlying GUI toolkit. In order to implement DDD using another toolkit, the only necessary modification is the creation of a new wrapper. Modifications to the DDD core logic will automatically affect all implementations.

Each wrapper will thus have two interfaces:

  • The interface to DDD, or “upper” interface.
  • The interface to the underlying toolkit, or “lower” interface.

The specification of the upper interface will be common to all wrappers. It will have the following properties:

  • It will be object-oriented. Widgets will be C++ objects, they will be created and destroyed by C++ constructors and destructors respectively.
  • Callbacks will be handled using the libsigc++ typesafe signal framework. Each widget class supports a number of “signals”; a signal is usually triggered by an event in the underlying toolkit, for example, a mouse click on a button or menu item. Callbacks will be handled by connecting a signal to a corresponding “slot”, for example a class method or ordinary function.

The lower interface is the API of the underlying GUI toolkit, for example Motif, gtkmm or Qt. The bulk of the wrapper code will do two things:

  • Intercept calls made by DDD to the upper interface and make corresponding calls to the underlying toolkit.
  • Trap the callbacks produced by the underlying toolkit and translate them to signal invocations at the upper interface.
Peter Wainwright <pwainwright>

 

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by fbicknel (Voted in favor of this item)
  • -unavailable- added by shaunak (Updated the item)
  • -unavailable- added by pwainwright (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 10 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 5 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Thu 06 Feb 2014 11:09:40 PM UTCfbicknelCarbon-Copy-=>Added fbicknel
    Thu 07 Mar 2013 05:09:57 AM UTCshaunakAssigned topwainwright=>None
    Sun 15 Feb 2009 06:23:43 PM UTCpwainwrightPercent Complete40%=>60%
    Tue 03 Feb 2009 09:25:06 AM UTCpwainwrightStatusNone=>In Progress
      Percent Complete0%=>40%

    Back to the top


    Powered by Savane 3.1-cleanup