Changeset 6 for JX

Show
Ignore:
Timestamp:
04/24/07 09:43:46 (2 years ago)
Author:
daboo
Message:

Changes to JX for Mulberry. This includes Xft support, rudimentary unicode
support, and various other tweaks.

Location:
JX/trunk
Files:
38 added
118 modified

Legend:

Unmodified
Added
Removed
  • JX/trunk/include

    • Property svn:ignore set to
      jxstrings
      jximage
      jx
      jcore
  • JX/trunk/include/make/jx_config_common

    r3 r6  
    4747  -D_J_UNIX ${J_ISTRSTREAM_BROKEN} \ 
    4848  ${J_ARRAY_NEW_OVERRIDABLE} ${J_USE_READDIR_R} \ 
    49   ${J_HAS_GD} -D_J_HAS_XPM 
     49  ${J_HAS_GD} -D_J_HAS_XPM ${J_USE_XFT} ${J_USE_UTF8_STRINGS} 
    5050 
    5151ifneq (${J_USE_THREADS},yes) 
     
    5656  J_RAW_SYSTEM_STUFF += \ 
    5757    -Wall -Wno-unused \ 
    58     -fno-implicit-templates -DJ_EXPLICIT_TEMPLATES 
     58    -DJ_EXPLICIT_TEMPLATES 
     59#    -fno-implicit-templates -DJ_EXPLICIT_TEMPLATES 
    5960 
    6061  ifeq (${J_COMPILE_DEBUG},-g) 
     
    6768    J_RAW_SYSTEM_STUFF += -DJ_NO_HAS_STATIC_TEMPLATE_DATA 
    6869  else 
    69     J_RAW_SYSTEM_STUFF += -fno-exceptions 
     70    #J_RAW_SYSTEM_STUFF += -fno-exceptions 
    7071  endif 
    7172 
  • JX/trunk/include/make/sys/Linux-Intel-gcc3

    r3 r6  
    1616 
    1717# JX_INCLUDE_LIBXPM := yes 
     18 
     19# Uncomment these for Xft support 
     20 
     21JX_USE_XFT := yes 
     22J_XFT_LIB := -lXft 
     23J_USE_XFT := -D_J_USE_XFT 
     24 
     25# Uncomment these for utf-8 string drawing 
     26# This can be used even if Xft is not used, as JX will downgrade 
     27# utf8 strings to iso-8859-1 
     28 
     29JX_USE_UTF8_STRINGS := yes 
     30J_USE_UTF8_STRINGS := -D_J_USE_UTF8_STRINGS 
    1831 
    1932# This sets the optimization level 
     
    5366J_STRIP_DEBUG := strip -g 
    5467 
     68# Uncomment this if your system does not support threads 
     69J_USE_THREADS := yes 
     70 
    5571# Comment this out if your version of "ar" does not accept the -s option. 
    5672 
     
    89105J_GCC_LIBS  := -lstdc++ -lm -lc -ldl 
    90106J_ACE_LIBS  := -L${JX_ROOT}/lib -lACE-${ACE_LIB_VERSION} 
    91 J_X11_LIBS  := -L${JX_ROOT}/lib ${J_X11_LIB_DIR} -lXext -lXpm -lX11 
     107J_X11_LIBS  := -L${JX_ROOT}/lib ${J_X11_LIB_DIR} -lXext -lXpm -lX11 ${J_XFT_LIB} 
    92108J_MESA_LIBS := -L${JX_ROOT}/lib -lglut -lGLU -lGL 
    93109 
  • JX/trunk/libjcore/Make.files

    r3 r6  
    1414JContainer 
    1515JString 
     16JString16 
    1617JPtrArray-JString 
     18JPtrArray-JString16 
    1719JStringManager 
    1820JSubstitute 
     
    8789.l JHTMLScannerL 
    8890 
     91JTextEditor16 
     92JTEUndoBase16 
     93JTEUndoTextBase16 
     94JTEUndoTyping16 
     95JTEUndoPaste16 
     96JTEUndoDrop16 
     97JTEUndoStyle16 
     98JTEUndoTabShift16 
     99JTEStyler16 
     100 
    89101JVector 
    90102JMatrix 
     
    154166Templates-double 
    155167Templates-JCharacter 
     168Templates-JCharacter16 
    156169Templates-JBoolean 
    157170Templates-JTextEditor 
     171Templates-JTextEditor16 
    158172Templates-JString 
     173Templates-JString16 
    159174Templates-JString2 
     175Templates-JString216 
    160176 
    161177# JMemoryManager (Dustin Laurence) 
  • JX/trunk/libjcore/code/JACETemplates.cpp

    r3 r6  
    5050#undef JTemplateType 
    5151 
     52template class ACE_Task<ACE_MT_SYNCH>; 
    5253template class ACE_Task<ACE_NULL_SYNCH>; 
    5354template class ACE_Message_Queue<ACE_NULL_SYNCH>; 
     55template class ACE_Message_Queue<ACE_MT_SYNCH>; 
    5456template class ACE_Module<ACE_NULL_SYNCH>; 
     57template class ACE_Module<ACE_MT_SYNCH>; 
    5558template class ACE_Thru_Task<ACE_NULL_SYNCH>; 
     59template class ACE_Thru_Task<ACE_MT_SYNCH>; 
    5660 
    5761#define JTemplateType iovec 
  • JX/trunk/libjcore/code/JAssertBase.cpp

    r3 r6  
    3636static const JCharacter* kAssertActionEnvName = "J_ASSERT_ACTION"; 
    3737static const JCharacter* kAskUserAction       = "ask_user"; 
     38static const JCharacter* kPrintAction         = "print"; 
    3839static const JCharacter* kIgnoreFailureAction = "silent"; 
     40 
     41static JAssertBase::Action sDefaultAction = JAssertBase::kAbort; 
    3942 
    4043/****************************************************************************** 
     
    101104                                } 
    102105                        } 
     106                else if (action == kPrint) 
     107                        return 0; 
    103108 
    104109                JAssertBase* ah; 
     
    124129JAssertBase::GetAction() 
    125130{ 
     131#if 0 
    126132        const char* action = getenv(kAssertActionEnvName); 
    127133        if (action == NULL) 
     
    137143                return kAskUser; 
    138144                } 
     145        else if (strcmp(action, kPrintAction) == 0) 
     146                { 
     147                return kPrint; 
     148                } 
    139149        else 
    140150                { 
    141151                return kAbort; 
    142152                } 
     153#else 
     154        return sDefaultAction; 
     155#endif 
    143156} 
    144157 
     
    156169        ) 
    157170{ 
     171#if 0 
    158172        if (action == kIgnoreFailure) 
    159173                { 
     
    164178                setenv(kAssertActionEnvName, kAskUserAction, 1); 
    165179                } 
     180        else if (action == kPrint) 
     181                { 
     182                setenv(kAssertActionEnvName, kPrintAction, 1); 
     183                } 
    166184        else 
    167185                { 
     
    169187                setenv(kAssertActionEnvName, "", 1); 
    170188                } 
     189#else 
     190        sDefaultAction = action; 
     191#endif 
    171192} 
  • JX/trunk/libjcore/code/JAssertBase.h

    r3 r6  
    2525                kIgnoreFailure, 
    2626                kAbort, 
    27                 kAskUser 
     27                kAskUser, 
     28                kPrint 
    2829        }; 
    2930 
  • JX/trunk/libjcore/code/JBroadcaster.cpp

    r3 r6  
    5858        itsSenders    = NULL; 
    5959        itsRecipients = NULL; 
     60        itsIsBroadcasting = kJTrue; 
     61        itsIsListening = kJTrue; 
    6062} 
    6163 
     
    7678        itsSenders    = NULL; 
    7779        itsRecipients = NULL; 
     80        itsIsBroadcasting = kJTrue; 
     81        itsIsListening = kJTrue; 
    7882} 
    7983 
     
    362366        ) 
    363367{ 
    364         assert( itsRecipients != NULL ); 
     368        assert( (IsBroadcasting() == kJTrue) && (itsRecipients != NULL) ); 
    365369 
    366370        JBroadcasterIterator    iterator(itsRecipients, kJIteratorStartAtBeginning); 
     
    369373        while (iterator.Next(&recipient)) 
    370374                { 
    371                 recipient->Receive(this, message); 
     375                if (recipient->IsListening() == kJTrue) 
     376                        recipient->Receive(this, message); 
    372377                } 
    373378} 
     
    426431        ) 
    427432{ 
    428         assert( itsRecipients != NULL ); 
     433        assert( (IsBroadcasting() == kJTrue) && (itsRecipients != NULL) ); 
    429434 
    430435        JBroadcasterIterator    iterator(itsRecipients, kJIteratorStartAtBeginning); 
     
    433438        while (iterator.Next(&recipient)) 
    434439                { 
    435                 recipient->ReceiveWithFeedback(this, message); 
     440                if (recipient->IsListening() == kJTrue) 
     441                        recipient->ReceiveWithFeedback(this, message); 
    436442                } 
    437443} 
  • JX/trunk/libjcore/code/JBroadcaster.h

    r3 r6  
    3737                }; 
    3838 
     39        class StStopListening 
     40        { 
     41public: 
     42                StStopListening(JBroadcaster* broad) 
     43                        { mBroadcaster = broad; mRestart = mBroadcaster->IsListening(); mBroadcaster->SetListening(kJFalse); } 
     44                ~StStopListening() 
     45                        { if (mRestart) mBroadcaster->SetListening(kJTrue); } 
     46        private: 
     47                JBroadcaster*   mBroadcaster; 
     48                bool                    mRestart; 
     49        }; 
     50        friend class StStopListening; 
     51 
    3952public: 
    4053 
     
    5669        void    StopListening(const JBroadcaster* aSender); 
    5770 
     71        void                    SetBroadcasting(JBoolean broadcasting); 
     72        JBoolean                IsBroadcasting() const; 
     73 
     74        void                    SetListening(JBoolean listening); 
     75        JBoolean                IsListening() const; 
     76 
    5877        void                    Send(JBroadcaster* recipient, const Message& message); 
    5978        void                    Broadcast(const Message& message); 
     
    7089        JBroadcasterList*       itsSenders;                     // the objects to which we listen 
    7190        JBroadcasterList*       itsRecipients;          // the objects that listen to us 
     91        JBoolean                        itsIsBroadcasting;      // actively broadcasting 
     92        JBoolean                        itsIsListening;         // actively listening 
    7293 
    7394private: 
     
    83104}; 
    84105 
     106inline void JBroadcaster::SetBroadcasting(JBoolean broadcasting) 
     107{ 
     108        itsIsBroadcasting = broadcasting; 
     109} 
     110 
     111inline JBoolean JBroadcaster::IsBroadcasting() const 
     112{ 
     113        return itsIsBroadcasting; 
     114} 
     115 
     116inline void JBroadcaster::SetListening(JBoolean listening) 
     117{ 
     118        itsIsListening = listening; 
     119} 
     120 
     121inline JBoolean JBroadcaster::IsListening() const 
     122{ 
     123        return itsIsListening; 
     124} 
    85125 
    86126/****************************************************************************** 
     
    105145        ) 
    106146{ 
    107         if (itsRecipients != NULL) 
     147        if ((IsBroadcasting() == kJTrue) && (itsRecipients != NULL)) 
    108148                { 
    109149                BroadcastPrivate(message); 
     
    133173        ) 
    134174{ 
    135         if (itsRecipients != NULL) 
     175        if ((IsBroadcasting() == kJTrue) && (itsRecipients != NULL)) 
    136176                { 
    137177                BroadcastWithFeedbackPrivate(message); 
  • JX/trunk/libjcore/code/JEPSPrinter.cpp

    r3 r6  
    421421 
    422422/****************************************************************************** 
     423 String16 
     424 
     425 ******************************************************************************/ 
     426 
     427void 
     428JEPSPrinter::String16 
     429        ( 
     430        const JCoordinate       left, 
     431        const JCoordinate       top, 
     432        const JCharacter16*     str, 
     433        const JCoordinate       width, 
     434        const HAlignment        hAlign, 
     435        const JCoordinate       height, 
     436        const VAlignment        vAlign 
     437        ) 
     438{ 
     439        JCoordinate ascent, descent; 
     440        GetLineHeight(&ascent, &descent); 
     441 
     442        JCoordinate dx = 0, dy = 0; 
     443        AlignString16(&dx,&dy, str, width, hAlign, height, vAlign); 
     444 
     445        PSString16(GetFontManager(), GetFontID(), GetFontSize(), GetFontStyle(), 
     446                         ascent, dx,dy, 0, left,top, str); 
     447} 
     448 
     449void 
     450JEPSPrinter::String16 
     451        ( 
     452        const JFloat            userAngle, 
     453&nb