home *** CD-ROM | disk | FTP | other *** search
/ Dream 52 / Amiga_Dream_52.iso / Linux / Divers / freedraft.tar.gz / freedraft.tar / FREEdraft-050298 / COMMAND / linestyledialog.cpp < prev    next >
C/C++ Source or Header  |  1998-04-22  |  6KB  |  154 lines

  1. // linestyledialog.cpp
  2.  
  3. // copyright 1998 Cliff Johnson 
  4. // iamcliff@ix.netcom.com
  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
  9. //  (at your option) any later version.
  10. //
  11. //  This program is distributed in the hope that it will be useful,
  12. //  but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. //  GNU General Public License for more details.
  15. //
  16. //  You should have received a copy of the GNU General Public License
  17. //  (see COPYING) along with this program; if not, write to the Free
  18. //  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  19. //=======================================================================
  20.  
  21. enum {  LSD_LINESTYLE_LABEL = 1667,
  22.     LSD_RADIOFRAME,
  23.     LSD_SOLID_ICONBTN,
  24.     LSD_LONGDASH_ICONBTN,
  25.     LSD_DOTTED_ICONBTN,
  26.     LSD_CHAIN_ICONBTN,
  27.     LSD_THICK_RADIOFRAME,
  28.     LSD_THICK_LABEL,
  29.     LSD_THIN_ICONBTN,
  30.     LSD_NORMAL_ICONBTN,
  31.     LSD_WIDE_ICONBTN,
  32.     LSD_VERYWIDE_ICONBTN
  33. };
  34.  
  35. #include "linestyledialog.h"
  36. #include <v/vicon.h>
  37. #include <attrib_enum.h>
  38.  
  39. //#include <iostream.h>
  40. #include <menuhandler.h>
  41.  
  42. #include "linestyle_solid.vbm"
  43.     static vIcon linestyle_solid(&linestyle_solid_bits[0],linestyle_solid_height,linestyle_solid_width);
  44. #include "linestyle_longdash.vbm"
  45.     static vIcon linestyle_longdash(&linestyle_longdash_bits[0],linestyle_longdash_height,linestyle_longdash_width);
  46. #include "linestyle_dotted.vbm"
  47.     static vIcon linestyle_dotted(&linestyle_dotted_bits[0],linestyle_dotted_height,linestyle_dotted_width);
  48. #include "linestyle_chain.vbm"
  49.     static vIcon linestyle_chain(&linestyle_chain_bits[0],linestyle_chain_height,linestyle_chain_width);
  50.  
  51. #include "linethick_thin.vbm"
  52.     static vIcon linethick_thin(&linethick_thin_bits[0],linethick_thin_height,linethick_thin_width);
  53. #include "linethick_normal.vbm"
  54.     static vIcon linethick_normal(&linethick_normal_bits[0],linethick_normal_height,linethick_normal_width);
  55. #include "linethick_wide.vbm"
  56.     static vIcon linethick_wide(&linethick_wide_bits[0],linethick_wide_height,linethick_wide_width);
  57. #include "linethick_verywide.vbm"
  58.     static vIcon linethick_verywide(&linethick_verywide_bits[0],linethick_verywide_height,linethick_verywide_width);
  59.  
  60.     static DialogCmd LineStyleDialogCmds[] =
  61.       {
  62.  
  63.     {C_Frame,LSD_RADIOFRAME,0,"",NoList,CA_None,isSens,NoFrame,0,0},
  64.     {C_Label, LSD_LINESTYLE_LABEL, 0,"Line style",NoList,CA_MainMsg,isSens,LSD_RADIOFRAME, 0, 0},
  65.     {C_ToggleIconButton,LSD_SOLID_ICONBTN,1,"",&linestyle_solid,CA_None,isSens,LSD_RADIOFRAME,0,LSD_LINESTYLE_LABEL},
  66.     {C_ToggleIconButton,LSD_LONGDASH_ICONBTN,0,"",&linestyle_longdash,CA_None,isSens,LSD_RADIOFRAME,0,LSD_SOLID_ICONBTN},
  67.     {C_ToggleIconButton,LSD_DOTTED_ICONBTN,0,"",&linestyle_dotted,CA_None,isSens,LSD_RADIOFRAME,0,LSD_LONGDASH_ICONBTN},
  68.     {C_ToggleIconButton,LSD_CHAIN_ICONBTN,0,"",&linestyle_chain,CA_None,isSens,LSD_RADIOFRAME,0,LSD_DOTTED_ICONBTN},
  69.  
  70.     {C_Frame,LSD_THICK_RADIOFRAME,0,"",NoList,CA_None,isSens,NoFrame,LSD_RADIOFRAME,0},
  71.     {C_Label, LSD_THICK_LABEL, 0,"Thickness",NoList,CA_MainMsg,isSens,LSD_THICK_RADIOFRAME, 0, 0},
  72.     {C_ToggleIconButton,LSD_THIN_ICONBTN,0,"",&linethick_thin,CA_None,isSens,LSD_THICK_RADIOFRAME,0,LSD_THICK_LABEL},
  73.     {C_ToggleIconButton,LSD_NORMAL_ICONBTN,1,"",&linethick_normal,CA_None,isSens,LSD_THICK_RADIOFRAME,0,LSD_THIN_ICONBTN},
  74.     {C_ToggleIconButton,LSD_WIDE_ICONBTN,0,"",&linethick_wide,CA_None,isSens,LSD_THICK_RADIOFRAME,0,LSD_NORMAL_ICONBTN},
  75.     {C_ToggleIconButton,LSD_VERYWIDE_ICONBTN,0,"",&linethick_verywide,CA_None,isSens,LSD_THICK_RADIOFRAME,0,LSD_WIDE_ICONBTN},
  76.     {C_Button, M_OK, M_OK,"   OK   ", NoList, CA_DefaultButton,isSens, NoFrame,0, LSD_RADIOFRAME},
  77.  
  78.     {C_EndOfList,0,0,0,0,CA_None,0,0,0}
  79.       };
  80.  
  81.  
  82. //======================>>> LineStyleDialog::LineStyleDialog <<<==================
  83.   LineStyleDialog::LineStyleDialog(vBaseWindow* bw, MenuHandler* mh) :
  84.     vDialog(bw)
  85.   {
  86.     menuHandler= mh;
  87.     AddDialogCmds(LineStyleDialogCmds);        // add the predefined commands
  88.   }
  89.  
  90. //===================>>> LineStyleDialog::~LineStyleDialog <<<====================
  91.   LineStyleDialog::~LineStyleDialog()
  92.   {
  93.   }
  94.  
  95. //====================>>> LineStyleDialog::DialogCommand <<<====================
  96. void LineStyleDialog::DialogCommand(ItemVal id, ItemVal retval, CmdType ctype)
  97. {
  98.  
  99.     
  100. // radio style behavior
  101.     switch(id)
  102.     {
  103.         case LSD_SOLID_ICONBTN:    
  104.         case LSD_LONGDASH_ICONBTN:    
  105.         case LSD_DOTTED_ICONBTN:    
  106.         case LSD_CHAIN_ICONBTN:    
  107.             SetValue( LSD_SOLID_ICONBTN,0,Value);
  108.             SetValue( LSD_LONGDASH_ICONBTN,0,Value);
  109.             SetValue( LSD_DOTTED_ICONBTN,0,Value);
  110.             SetValue( LSD_CHAIN_ICONBTN,0,Value);
  111.             SetValue(id,1,Value);
  112.             break;
  113.         case LSD_THIN_ICONBTN:    
  114.         case LSD_NORMAL_ICONBTN:    
  115.         case LSD_WIDE_ICONBTN:    
  116.         case LSD_VERYWIDE_ICONBTN:    
  117.             SetValue( LSD_THIN_ICONBTN,0,Value);
  118.             SetValue( LSD_NORMAL_ICONBTN,0,Value);
  119.             SetValue( LSD_WIDE_ICONBTN,0,Value);
  120.             SetValue( LSD_VERYWIDE_ICONBTN,0,Value);
  121.             SetValue(id,1,Value);
  122.             break;
  123.     }
  124.     switch(id)
  125.     {
  126.         case LSD_SOLID_ICONBTN:    
  127.             menuHandler->LoadLineStyle(FD_LINESTYLE_SOLID);
  128.             break;
  129.         case LSD_LONGDASH_ICONBTN:    
  130.             menuHandler->LoadLineStyle(FD_LINESTYLE_LONGDASH);
  131.             break;
  132.         case LSD_DOTTED_ICONBTN:    
  133.             menuHandler->LoadLineStyle(FD_LINESTYLE_DOTTED);
  134.             break;
  135.         case LSD_CHAIN_ICONBTN:    
  136.             menuHandler->LoadLineStyle(FD_LINESTYLE_CHAIN);
  137.             break;
  138.         case LSD_THIN_ICONBTN:    
  139.             menuHandler->LoadThick(FD_LINETHICK_THIN);
  140.             break;
  141.         case LSD_NORMAL_ICONBTN:    
  142.             menuHandler->LoadThick(FD_LINETHICK_NORMAL);
  143.             break;
  144.         case LSD_WIDE_ICONBTN:    
  145.             menuHandler->LoadThick(FD_LINETHICK_WIDE);
  146.             break;
  147.         case LSD_VERYWIDE_ICONBTN:    
  148.             menuHandler->LoadThick(FD_LINETHICK_VERYWIDE);
  149.             break;
  150.     }
  151.  
  152.     vDialog::DialogCommand(id,retval,ctype);
  153. }
  154.