1. 03 May, 2014 1 commit
    • Dick Hollenbeck's avatar
      Modular-Kicad milestone B), major portions: · 991926d3
      Dick Hollenbeck authored
      *) Rework the set language support, simplify it by using KIWAY.  Now any major
         frame with a "change language" menu can change the language for all KIWAY_PLAYERs
         in the whole KIWAY.  Multiple KIWAYs are not supported yet.
      
      *) Simplify "modal wxFrame" support, and add that support exclusively to
         KIWAY_PLAYER where it is inherited by all derivatives.  The function
         KIWAY_PLAYER::ShowModal() is in the vtable and so is cross module capable.
      
      *) Remove the requirements and assumptions that the wxFrame hierarchy always
         had PCB_EDIT_FRAME and SCH_EDIT_FRAME as immediate parents of their viewers
         and editors. This is no longer the case, nor required.
      
      *) Use KIWAY::Player() everywhere to make KIWAY_PLAYERs, this registers the
         KIWAY_PLAYER within the KIWAY and makes it very easy to find an open frame
         quickly.  It also gives control to the KIWAY as to frame hierarchical
         relationships.
      
      *) Change single_top to use the KIWAY for loading a KIFACE and instantiating
         the single KIWAY_PLAYER, see bullet immediately above.
      
      *) Add KIWAY::OnKiwayEnd() and call it from PGM_BASE at program termination, this
         gives the KIFACEs a chance to save their final configuration dope to disk.
      
      *) Add dedicated FRAME_T's for the modal frames, so m_Ident can be tested and
         these modal frames are distinctly different than their non-modal equivalents.
         KIWAY_PLAYER::IsModal() is !not! a valid test during the wxFrame's constructor,
         so this is another important reason for having a dedicated FRAME_T for each
         modal wxFrame.
      
      On balance, more lines were deleted than were added to achieve all this.
      991926d3
  2. 02 May, 2014 2 commits
  3. 01 May, 2014 1 commit
  4. 30 Apr, 2014 1 commit
  5. 28 Apr, 2014 2 commits
  6. 27 Apr, 2014 4 commits
  7. 26 Apr, 2014 1 commit
  8. 25 Apr, 2014 5 commits
  9. 24 Apr, 2014 6 commits
  10. 23 Apr, 2014 2 commits
  11. 22 Apr, 2014 4 commits
  12. 21 Apr, 2014 3 commits
    • Dick Hollenbeck's avatar
      Functional · 7a129e16
      Dick Hollenbeck authored
      *) void KIWAY::ExpressMail( FRAME_T aDestination, MAIL_T aCommand, const std::string& aPayload, wxWindow* aSource=NULL );
      *) virtual void KiwayMailIn( KIWAY_EXPRESS& aEvent );
      *) enum MAIL_T expansion into the brave new world if cross KIWAY_PLAYER communications.
      
      Let the KIWAY_PLAYING begin.....
      through well conceived mail from one KIWAY_PLAYER to another.
      Get thinking now.  Add a new MAIL_T value, then send ExpressMail(), 
      and receive it in KiwayMailIn(), it's that easy.
      7a129e16
    • Dick Hollenbeck's avatar
      1648d7fd
    • Dick Hollenbeck's avatar
      happy Easter · e47a2bc5
      Dick Hollenbeck authored
      e47a2bc5
  13. 20 Apr, 2014 1 commit
  14. 19 Apr, 2014 4 commits
  15. 18 Apr, 2014 1 commit
    • Dick Hollenbeck's avatar
      *) Add KIFACE_I::StartFlags() and IsSingle() so a KIFACE implementation can know · 5f65d0da
      Dick Hollenbeck authored
          if it is running under single_top.cpp or under a project manager.
      
      *)  Test Kiface().IsSingle() when adding menus, some operations are not permitted
          when running under a project manager and the KIWAY_PLAYER is pegged to a
          specific project.
      
      *)  Implemented KIWAY::KiFACE() so it loads *.kiface files.  They still have to be
          in the same directory as the main *.exe launcher, so this presents some difficulty
          when the binaries are not yet installed but rather the *.kiface files are still
          in their original build directories.  For today, I simply copied _pcbnew.kiface
          to build/kicad/.
      
      *)  Add a test case to kicad/mainframe.cpp just to get an early peek at loading
          _pcbnew.kiface under the C++ project manager.  Got that working for one
          specific invocation just for proof of concept.  Surprise, it works.
      5f65d0da
  16. 17 Apr, 2014 1 commit
  17. 15 Apr, 2014 1 commit