ChooseLevelInPrefs/fi
From Wiki.ooo4kids.org
|
Osaamistason valinta asetuksista |
Kaikki alkuperäiseen OpenOffice.org-lähdekoodiin tällä sivulla esitetyt muutokset ovat:
- LGPLv3-käyttöoikeuden alaisia ( ja voit jakaa ja/tai muokata lähdekoodia Free Software Foundation -säätiön jukaisemien GNU Lesser General Public License -ehtojen rajoissa)
- Tekijänoikeudet: Eric Bachard, 1. syyskuuta 2009
Eike Rathke, Thorsten Behrens and Cédric Bosdonnat saavat kiitoksen arvokkaista neuvoistaan.
Tavoite
Määrittelyt
- Muokataan asetuksia niin, niin että voidaan valita käyttäjätasot: aloittelija, keskitasoinen, erikoistunut
- Vaakarivi valintanappeja: vain yksi nappi on aktiivinen
- Oletuksena (ensimmäisellä OOo4Kidsin käynnistyskerralla) on Alkaja
Kuten kuvasta näkyy:
Esimerkkejä käytöstä
- Calcissa kaikki funktiot ovat käytettävissä, mutta eivät luettelossa näkyvissä:
- kun aloittelija-taso on valittu, funktioluettelossa näkyy vain muutamia funktioita.
- keskitasoinen tarkoittaa, että 30...40 funktiota on näkyvissä luettelossa
- erikoistunut: luettelossa näkyy kaikki funktiot
- Writerissa (vasta ideana): tasosta riippuen voidaan esittää enemmän tai vähemmän tyylivaihtoehtoja
- Writer-avustimessa voidaan tasosta riippuen esittää joitakin malleja tms.
- (lisää oma ideasi)
Koodissa
Uuden asetuksen toteuttamiseen käytämme MiscTabPage-luokkaa ja periytämme.
Tehty:
- lisätään uudet oliot OfaMiscTabPage-muodostimeen
- aUserLevelFL ( yhtenäinen viiva )
- aUserLevelBeginnerRB ( valintanappi )
- aUserLevelAverageRB ( valintanappi )
- aUserLevelExpertRB ( valintanappi )
- Esitellään nämä otsikkotiedostossa (optgdlg.hxx)
- Toteutetaan staattiset metodit (aluksi), joilla:
- luetaan Osaamistasoksi asetuksissa nimetty arvo Common.xcu:sta, Misc-solmusta
- tunnistetaan ajankohdan aktiivinen valintanappi
- käsitellään valintanapin napsautus ( tapahtuu takaisinkutsulla )
Kaikki näyttää toimivan:
- käyttöliittymä: ok
- .xcu näyttää toimivan ja arvo on luettavissa Common.xcu-tiedostossa, $SYSUSERCONFIG-hakemistossa
- napin alustus: OK
- arvon lukeminen asetuksista: OK
- napsauta ja katso, että uuden napin aktivoituminnen (vain yksi kerrallaan) on OK
- aloita annetulla arvolla: alustus on ok, kaikki vaihtoehdot todennettu: OK
- arvon kirjoittaminen asetuksiin: OK
- todenna arvon muutos: kelpuuta muutos, napsauta OK-painiketta, avaa asetukset uudestaan ja muutos on edelleen voimassa: OK
Ole ystävällinen ja raportoi kaikista löytämistäsi virheistä.
Moduuli: svx
Asetuksista miltei kaikki sijaitsevan svx:ssa (loput ovat sfx2/source/dialog:ssa) ja svx/source/cui/optgdlg.hrc:ssa on tärkeitä tietoja, kuten sarakkeiden ja rivien ulottuvuudet. svx/source/cui/optgdlg.src on paikka, jossa varmennetaan, että se toimii
Asiaan kuuluvat tiedostot:
- svx/source/cui/optgdlg.src : sisältää valintaikkunoiden kaikki osat (painikkeet, luettelot .. jne )
Index: svx/source/cui/optgdlg.src
===================================================================
--- svx/source/cui/optgdlg.src (revision 275641)
+++ svx/source/cui/optgdlg.src (working copy)
@@ -41,49 +41,49 @@
TabPage OFA_TP_MISC
{
- HelpID = HID_OFA_TP_MISC ;
- SVLook = TRUE ;
- Size = MAP_APPFONT ( 260 , 185 ) ;
- Hide = TRUE ;
+ HelpID = HID_OFA_TP_MISC ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 260, 185 ) ;
+ Hide = TRUE ;
FixedLine FL_HELP
{
- Pos = MAP_APPFONT( COL0, ROW0 );
- Size = MAP_APPFONT( WHOLE_WIDTH, RSC_CD_FIXEDLINE_HEIGHT );
- Text [ en-US ] = "Help";
- };
- CheckBox CB_TOOLTIP
- {
- Pos = MAP_APPFONT( COL1, ROW1 );
- Size = MAP_APPFONT( WHOLE_WIDTH - COL1, RSC_CD_CHECKBOX_HEIGHT );
- Text [ en-US ] = "~Tips";
- };
- CheckBox CB_EXTHELP
- {
- Pos = MAP_APPFONT( COL2, ROW2 );
- Size = MAP_APPFONT( WHOLE_WIDTH - COL2, RSC_CD_CHECKBOX_HEIGHT );
- Text [ en-US ] = "~Extended tips";
- };
- CheckBox CB_HELPAGENT
- {
- Pos = MAP_APPFONT( COL1, ROW3 );
- Size = MAP_APPFONT( WHOLE_WIDTH - COL1, RSC_CD_CHECKBOX_HEIGHT );
- Text [ en-US ] = "~Help Agent";
- };
+ Pos = MAP_APPFONT( COL0, ROW0 );
+ Size = MAP_APPFONT( WHOLE_WIDTH, 10 );
+ Text [ en-US ] = "Help";
+ };
+ CheckBox CB_TOOLTIP
+ {
+ Pos = MAP_APPFONT ( COL1, ROW1 ) ;
+ Size = MAP_APPFONT ( 60, 10 ) ;
+ Text [ en-US ] = "~Tips";
+ };
+ CheckBox CB_EXTHELP
+ {
+ Pos = MAP_APPFONT ( COL1 + 60, ROW1 ) ;
+ Size = MAP_APPFONT ( 60, 10 ) ;
+ Text [ en-US ] = "~Extended tips";
+ };
+ CheckBox CB_HELPAGENT
+ {
+ Pos = MAP_APPFONT( COL1 + 120, ROW1 );
+ Size = MAP_APPFONT ( 60, 10 ) ;
+ Text [ en-US ] = "~Help Agent";
+ };
PushButton PB_HELPAGENT_RESET
{
- Pos = MAP_APPFONT( COL2, ROW4 );
- Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT );
- Text [ en-US ] = "~Reset Help Agent";
- };
+ Pos = MAP_APPFONT( COL1 + 180, ROW1 );
+ Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT );
+ Text [ en-US ] = "~Reset Help Agent";
+ };
FixedText FT_HELPFORMAT
{
- Pos = MAP_APPFONT( COL1, OFFS_TEXTBOX_FIXEDTEXT(ROW5) );
+ Pos = MAP_APPFONT( COL1, ROW3 );
Size = MAP_APPFONT( DIFF( COL1, COL3 ), RSC_CD_FIXEDTEXT_HEIGHT );
Text [ en-US ] = "Help ~formatting";
};
ListBox LB_HELPFORMAT
{
- Pos = MAP_APPFONT( COL4, ROW5 );
+ Pos = MAP_APPFONT( COL4, ROW3 );
Size = MAP_APPFONT( WHOLE_WIDTH - COL4, 50 );
DropDown = TRUE ;
Border = TRUE ;
@@ -97,6 +97,38 @@
< "High Contrast White" ; > ;
};
};
+ FixedLine FL_USERLEVEL
+ {
+ Pos = MAP_APPFONT( COL0, ROW4 );
+ Size = MAP_APPFONT( WHOLE_WIDTH, 10 );
+ Text [ en-US ] = "User Level";
+ Text [ fr ] = "Niveau";
+ };
+ RadioButton RB_USERLEVEL_BEGINNER
+ {
+ TabStop = TRUE;
+ Pos = MAP_APPFONT ( COL1, ROW5 ) ;
+ Size = MAP_APPFONT ( 60, 10 ) ;
+ Text [ en-US ] = "Beginner";
+ Text [ fr ] = "Débutant";
+ };
+ RadioButton RB_USERLEVEL_AVERAGE
+ {
+ TabStop = TRUE;
+ Pos = MAP_APPFONT ( COL1 + 60, ROW5 ) ;
+ Size = MAP_APPFONT ( 60, 10 ) ;
+ Text [ en-US ] = "Average";
+ Text [ fr ] = "Moyen";
+ };
+ RadioButton RB_USERLEVEL_EXPERT
+ {
+ TabStop = TRUE;
+ Pos = MAP_APPFONT( COL1 + 120, ROW5 );
+ Size = MAP_APPFONT ( 60, 10 ) ;
+ Text [ en-US ] = "Expert";
+ Text [ fr ] = "Expert";
+ };
+
FixedLine FL_FILEDLG
{
Pos = MAP_APPFONT( COL0, ROW6 );
@@ -177,16 +209,17 @@
TabPage OFA_TP_VIEW
{
- HelpID = HID_OFA_TP_VIEW ;
- SVLook = TRUE ;
- Size = MAP_APPFONT ( 260 , 185 ) ;
- Hide = TRUE ;
+ HelpID = HID_OFA_TP_VIEW ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 260 , 185 ) ;
+ Hide = TRUE ;
FixedLine FL_USERINTERFACE
- {
- Pos = MAP_APPFONT ( 6 , ROW0 ) ;
- Size = MAP_APPFONT ( 120 , 8 ) ;
- Text [ en-US ] = "User Interface" ;
+ {
+ Pos = MAP_APPFONT ( 6 , ROW0 ) ;
+ Size = MAP_APPFONT ( 120 , 8 ) ;
+ Text [ en-US ] = "User Interface" ;
};
+
FixedText FT_WINDOWSIZE
{
Pos = MAP_APPFONT ( 12 , OFFS_TEXTBOX_FIXEDTEXT( ROW_MF_SCALING ) ) ;
- svx/source/cui/optgdlg.hxx : asetusvalintaikkunan otsikkotiedosto
Index: svx/source/cui/optgdlg.hxx
===================================================================
--- svx/source/cui/optgdlg.hxx (revision 275641)
+++ svx/source/cui/optgdlg.hxx (working copy)
@@ -38,6 +38,13 @@
#include <readonlyimage.hxx>
#define FOLDERWEBVIEW_DEFAULTFILE "folder.so"
+#if defined( OOo4Kids )
+#define USER_LEVEL_BEGINNER 1
+#define USER_LEVEL_AVERAGE 2
+#define USER_LEVEL_EXPERT 3
+#endif
+
+
// predeclarations
class CanvasSettings;
class SvtOptionsDrawinglayer;
@@ -55,7 +62,12 @@
PushButton aHelpAgentResetBtn;
FixedText aHelpFormatFT;
ListBox aHelpFormatLB;
-
+#ifdef OOo4Kids
+ FixedLine aUserLevelFL;
+ RadioButton aUserLevelBeginnerRB;
+ RadioButton aUserLevelAverageRB;
+ RadioButton aUserLevelExpertRB;
+#endif
FixedLine aFileDlgFL;
ReadOnlyImage aFileDlgROImage;
CheckBox aFileDlgCB;
@@ -77,6 +89,9 @@
DECL_LINK( TwoFigureConfigHdl, NumericField* );
DECL_LINK( HelpCheckHdl_Impl, CheckBox* );
DECL_LINK( HelpAgentResetHdl_Impl, PushButton* );
+#ifdef OOo4Kids
+ DECL_LINK( UserLevelCheckHdl_Impl, RadioButton* pButton );
+#endif
protected:
virtual int DeactivatePage( SfxItemSet* pSet = NULL );
- svx/source/cui/optgdlg.hrc : sisältää esimääriteltyjä vakioita
Index: svx/source/cui/optgdlg.hrc =================================================================== --- svx/source/cui/optgdlg.hrc (revision 275641) +++ svx/source/cui/optgdlg.hrc (working copy) @@ -202,6 +202,12 @@ #define FT_HELPAGENT_TIME_UNIT 59 #define FL_DOCSTATUS 60 #define CB_DOCSTATUS 61 + +#define FL_USERLEVEL 62 +#define RB_USERLEVEL_BEGINNER 63 +#define RB_USERLEVEL_AVERAGE 64 +#define RB_USERLEVEL_EXPERT 65 + #endif // #ifndef _SVX_OPTGDLG_HRC // ******************************************************************* EOF
- svx/source/cui/optgdlg.cxx : valintaikkunan toteutus ja esimerkiksi meidän UserLevelSettings-luokka
Index: svx/source/cui/optgdlg.cxx
===================================================================
--- svx/source/cui/optgdlg.cxx (revision 275641)
+++ svx/source/cui/optgdlg.cxx (working copy)
@@ -106,6 +106,10 @@
#include <vcl/svapp.hxx>
+#ifdef OOo4Kids
+#include "vcl/unohelp.hxx"
+#endif
+
#include "optgdlg.hrc"
#include "optgdlg.hxx"
#include "ofaitem.hxx"
@@ -127,6 +131,94 @@
#define MAX_PROGRAM_ENTRIES 3
+#ifdef OOo4Kids
+static const OUString sULConfigSrvc( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.configuration.ConfigurationProvider" ) );
+static const OUString sULAccessSrvc( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.configuration.ConfigurationUpdateAccess" ) );
+
+static short getUserLevel()
+{
+ short dUserLevel = 1; // default is beginner
+ try
+ {
+ // get service provider
+ Reference< XMultiServiceFactory > xSMgr( vcl::unohelper::GetMultiServiceFactory() );
+ // create configuration hierachical access name
+ if( xSMgr.is() )
+ {
+ try
+ {
+ Reference< XMultiServiceFactory > xConfigProvider(
+ Reference< XMultiServiceFactory >(
+ xSMgr->createInstance( sULConfigSrvc ),
+ UNO_QUERY )
+ );
+ if( xConfigProvider.is() )
+ {
+ Sequence< Any > aArgs(1);
+ PropertyValue aVal;
+ aVal.Name = OUString( RTL_CONSTASCII_USTRINGPARAM( "nodepath" ) );
+ aVal.Value <<= OUString( RTL_CONSTASCII_USTRINGPARAM( "/org.openoffice.Office.Common/Misc" ) );
+ aArgs.getArray()[0] <<= aVal;
+ Reference< XNameAccess > xConfigAccess(
+ Reference< XNameAccess >(
+ xConfigProvider->createInstanceWithArguments( sULAccessSrvc, aArgs ), UNO_QUERY )
+ );
+ if( xConfigAccess.is() )
+ {
+ try
+ {
+ short bValue = 1;
+ Any aAny = xConfigAccess->getByName( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "UserLevel" ) ) );
+ if( aAny >>= bValue )
+ dUserLevel = bValue;
+ }
+ catch( NoSuchElementException& )
+ {
+ }
+ catch( WrappedTargetException& )
+ {
+ }
+ }
+ }
+ }
+ catch( Exception& )
+ {
+ }
+ }
+ }
+ catch( WrappedTargetException& )
+ {
+ }
+ return dUserLevel;
+}
+
+static void setUserLevel( short nLevel )
+{
+ try
+ {
+ Reference < XMultiServiceFactory > xFactory = ::comphelper::getProcessServiceFactory();
+ // get configuration provider
+ Reference< XMultiServiceFactory > theConfigProvider = Reference< XMultiServiceFactory >(
+ xFactory->createInstance(sULConfigSrvc), UNO_QUERY_THROW);
+ Sequence< Any > theArgs(1);
+ NamedValue v(OUString::createFromAscii("NodePath"),
+ makeAny(OUString::createFromAscii("org.openoffice.Office.Common/Misc")));
+ theArgs[0] <<= v;
+ Reference< XPropertySet > pset = Reference< XPropertySet >(
+ theConfigProvider->createInstanceWithArguments(sULAccessSrvc, theArgs), UNO_QUERY_THROW);
+
+ Any result = pset->getPropertyValue(OUString::createFromAscii("UserLevel"));
+
+ pset->setPropertyValue(OUString::createFromAscii("UserLevel"), makeAny(nLevel));
+ Reference< XChangesBatch >(pset, UNO_QUERY_THROW)->commitChanges();
+ }
+ catch( Exception& )
+ {
+ }
+}
+#endif // OOo4Kids
+
// class OfaMiscTabPage --------------------------------------------------
int OfaMiscTabPage::DeactivatePage( SfxItemSet* pSet_ )
@@ -212,6 +304,12 @@
aHelpAgentResetBtn ( this, SVX_RES( PB_HELPAGENT_RESET ) ),
aHelpFormatFT ( this, SVX_RES( FT_HELPFORMAT ) ),
aHelpFormatLB ( this, SVX_RES( LB_HELPFORMAT ) ),
+#ifdef OOo4Kids
+ aUserLevelFL ( this, SVX_RES( FL_USERLEVEL ) ),
+ aUserLevelBeginnerRB ( this, SVX_RES( RB_USERLEVEL_BEGINNER ) ),
+ aUserLevelAverageRB ( this, SVX_RES( RB_USERLEVEL_AVERAGE ) ),
+ aUserLevelExpertRB ( this, SVX_RES( RB_USERLEVEL_EXPERT ) ),
+#endif
aFileDlgFL ( this, SVX_RES( FL_FILEDLG ) ),
aFileDlgROImage ( this, SVX_RES( FI_FILEDLG_RO ) ),
aFileDlgCB ( this, SVX_RES( CB_FILEDLG ) ),
@@ -227,11 +325,20 @@
{
FreeResource();
+ //system fileopen only available in Windows and with gtk vclplug based
+ //picker and on MacOSX (aqua version)
+#if !defined( WNT ) && !defined( ENABLE_GTK ) && !( defined(MACOSX) && defined(QUARTZ) )
+ aFileDlgFL.Hide();
+ aFileDlgCB.Hide();
+#else
+# ifdef ENABLE_GTK
if (!lcl_HasSystemFilePicker())
{
aFileDlgFL.Hide();
aFileDlgCB.Hide();
}
+# endif
+#endif
#if ! defined(QUARTZ)
aPrintDlgFL.Hide();
@@ -310,6 +417,28 @@
aHelpAgentCB.SetClickHdl( aLink );
aHelpAgentResetBtn.SetClickHdl( LINK( this, OfaMiscTabPage, HelpAgentResetHdl_Impl ) );
+#ifdef OOo4Kids
+ aUserLevelBeginnerRB.SetClickHdl( LINK( this, OfaMiscTabPage, UserLevelCheckHdl_Impl ));
+ aUserLevelAverageRB.SetClickHdl( LINK( this, OfaMiscTabPage, UserLevelCheckHdl_Impl ));
+ aUserLevelExpertRB.SetClickHdl( LINK( this, OfaMiscTabPage, UserLevelCheckHdl_Impl ));
+
+ // initialize the Radio button (User Level)
+ switch ( getUserLevel() )
+ {
+ case USER_LEVEL_BEGINNER:
+ aUserLevelBeginnerRB.SetState( TRUE );
+ break;
+ case USER_LEVEL_AVERAGE:
+ aUserLevelAverageRB.SetState( TRUE );
+ break;
+ case USER_LEVEL_EXPERT:
+ aUserLevelExpertRB.SetState( TRUE );
+ break;
+ default:
+ break;
+ }
+#endif // OOo4Kids
+
//fill default names as user data
static const char* aHelpFormatNames[] =
{
@@ -502,6 +631,30 @@
return 0;
}
+#ifdef OOo4Kids
+IMPL_LINK( OfaMiscTabPage, UserLevelCheckHdl_Impl, RadioButton*, pButton )
+{
+ (void) pButton;
+ if ( aUserLevelExpertRB.IsChecked() )
+ setUserLevel( USER_LEVEL_EXPERT );
+ else if ( aUserLevelAverageRB.IsChecked() )
+ setUserLevel( USER_LEVEL_AVERAGE );
+ else
+ setUserLevel( USER_LEVEL_BEGINNER );
+
+
+ return 0;
+}
+#endif // OOo4Kids
+
// -----------------------------------------------------------------------
// -------------------------------------------------------------------
Näyttäisi, että meillä on kaikki napit oikeilla paikoillaan. Ensimmäinen idea (josta voidaan keskustella) on:
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Taso :
Alkaja [X] Osaaja [ ] Taituri [ ]
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Moduuli: officecfg
- Common.xcs tulee sisältämään mallin eli arvon prototyypin
Index: officecfg/registry/schema/org/openoffice/Office/Common.xcs =================================================================== --- officecfg/registry/schema/org/openoffice/Office/Common.xcs (revision 275641) +++ officecfg/registry/schema/org/openoffice/Office/Common.xcs (working copy) @@ -5697,6 +5697,13 @@ </info> <value>false</value> </prop> + <prop oor:name="UserLevel" oor:type="xs:short"> + <info> + <author>ericb</author> + <desc> Determines the level of difficulty of the features presented to the user</desc> + </info> + <value>1</value> + </prop> <prop oor:name="SymbolSet" oor:type="xs:short"> <!-- UIHints: Tools Options General View --> <info>
- Common.xcu tulee sisältämään aloitusarvon "beginner"
Index: officecfg/registry/data/org/openoffice/Office/Common.xcu
===================================================================
--- officecfg/registry/data/org/openoffice/Office/Common.xcu (revision 275641)
+++ officecfg/registry/data/org/openoffice/Office/Common.xcu (working copy)
@@ -547,6 +547,9 @@
<prop oor:name="UseSystemPrintDialog" install:module="macosx">
<value>true</value>
</prop>
+ <prop oor:name="UserLevel" oor:type="xs:short">
+ <value>1</value>
+ </prop>
</node>
<node oor:name="Save">
<node oor:name="Document">
- Setup.cxu tulee sisältämään polun "Misc"-solmuun, "UserLevel/Osaamistaso"-arvolle asetuksissa
Index: officecfg/registry/data/org/openoffice/Setup.xcu
===================================================================
--- officecfg/registry/data/org/openoffice/Setup.xcu (revision 275641)
+++ officecfg/registry/data/org/openoffice/Setup.xcu (working copy)
@@ -838,6 +838,7 @@
org.openoffice.Office.Common/Misc/SymbolSet
org.openoffice.Office.Common/Misc/UseSystemFileDialog
org.openoffice.Office.Common/Misc/UseSystemPrintDialog
+ org.openoffice.Office.Common/Misc/UserLevel
org.openoffice.Office.Common/Misc/SymbolStyle
org.openoffice.Office.Common/Passwords
org.openoffice.Office.Common/Print/PrintingModifiesDocument
Käyttöönoton aputekijät (vain käyttöliittymä)
Välilehden uudelleen järjestelemisessä allaolevat arvot ovat suureksi avuksi:
#define WHOLE_WIDTH 248 #define EDIT_WIDTH 30 #define UNIT_WIDTH 40 #define COLSPACE RSC_SP_CTRL_DESC_X #define COL0 6 #define COL1 (COL0+6) #define COL2 (COL1+10) #define COL3 (COL2+100) #define COL4 (COL3+COLSPACE) #define COL5 (COL4+EDIT_WIDTH) #define COL6 (COL5+COLSPACE) #define ROWSPACE RSC_SP_CTRL_DESC_Y #define ROW0 3 #define ROW1 (ROW0+RSC_CD_FIXEDLINE_HEIGHT+ROWSPACE) #define ROW2 (ROW1+RSC_CD_CHECKBOX_HEIGHT+ROWSPACE) #define ROW3 (ROW2+RSC_CD_CHECKBOX_HEIGHT+ROWSPACE) #define ROW4 (ROW3+RSC_CD_CHECKBOX_HEIGHT+ROWSPACE) #define ROW5 (ROW4+RSC_CD_PUSHBUTTON_HEIGHT+ROWSPACE) #define ROW6 (ROW5+RSC_CD_DROPDOWN_HEIGHT+ROWSPACE) #define ROW7 (ROW6+RSC_CD_FIXEDLINE_HEIGHT+ROWSPACE) #define ROW8 (ROW7+RSC_CD_CHECKBOX_HEIGHT+ROWSPACE) #define ROW9 (ROW8+RSC_CD_FIXEDLINE_HEIGHT+ROWSPACE) #define ROW10 (ROW9+RSC_CD_CHECKBOX_HEIGHT+ROWSPACE) #define ROW11 (ROW10+RSC_CD_FIXEDLINE_HEIGHT+ROWSPACE)
