]> git.saurik.com Git - wxWidgets.git/commitdiff
Unicode compilation fixes (patch from Dimitri)
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 27 Mar 2002 18:45:20 +0000 (18:45 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 27 Mar 2002 18:45:20 +0000 (18:45 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14822 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

samples/dialup/nettest.cpp
samples/event/event.cpp
samples/resource/resource.cpp
samples/richedit/wxLayout.cpp
samples/richedit/wxllist.cpp
samples/richedit/wxllist.h
samples/richedit/wxlwindow.cpp
samples/splitter/splitter.cpp
src/common/sckipc.cpp
src/msw/dde.cpp

index 7e31dad04521e856bdb494616c5fed2c9c6effdd..bcf1d57aa1ec0481c1414352c51913867a38abc6 100644 (file)
@@ -256,10 +256,10 @@ void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
 void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
 {
     wxString msg;
-    msg.Printf(_T("This is the network functions test sample.\n"
-                  "© 1999 Vadim Zeitlin"));
+    msg.Printf( wxT("This is the network functions test sample.\n")
+                wxT("© 1999 Vadim Zeitlin") );
 
-    wxMessageBox(msg, _T("About NetTest"), wxOK | wxICON_INFORMATION, this);
+    wxMessageBox(msg, wxT("About NetTest"), wxOK | wxICON_INFORMATION, this);
 }
 
 void MyFrame::OnHangUp(wxCommandEvent& WXUNUSED(event))
index 1f63f7efd164bbc0f43f7c2433765199cfa85e55..380cdd17bd1c995463f5f78815a0b6a684977cf2 100644 (file)
@@ -293,9 +293,9 @@ void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
 
 void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
 {
-    wxMessageBox(_T("Event sample shows different ways of using events\n"
-                    "© 2001 Vadim Zeitlin"),
-                 _T("About Event Sample"), wxOK | wxICON_INFORMATION, this);
+    wxMessageBox( wxT("Event sample shows different ways of using events\n")
+                  wxT("© 2001 Vadim Zeitlin"),
+                  wxT("About Event Sample"), wxOK | wxICON_INFORMATION, this );
 }
 
 // ----------------------------------------------------------------------------
@@ -304,9 +304,12 @@ void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
 
 void MyFrame::OnDynamic(wxCommandEvent& WXUNUSED(event))
 {
-    wxMessageBox(_T("This is a dynamic event handler which can be connected "
-                    "and disconnected during run-time."),
-                 _T("Dynamic Event Handler"), wxOK | wxICON_INFORMATION, this);
+    wxMessageBox
+    (
+        wxT("This is a dynamic event handler which can be connected ")
+        wxT("and disconnected at run-time."),
+        wxT("Dynamic Event Handler"), wxOK | wxICON_INFORMATION, this
+    );
 }
 
 void MyFrame::OnConnect(wxCommandEvent& event)
index 807c387fa13dcb1e93be5b2f2e834428e3535b86..e29236c8675305329a4824e2796fe7b1c074f6fd 100644 (file)
 #include "wx/wx.h"
 #endif
 
+#if wxUSE_UNICODE
+    #error "This sample can't be compiled in Unicode mode."
+#endif // wxUSE_UNICODE
+
 #include "wx/resource.h"
 
 #include <ctype.h>
@@ -52,8 +56,8 @@
 // Under Windows, some compilers can't include
 // a whole .wxr file. So we use a .rc user-defined resource
 // instead. dialog1 will point to the whole .wxr 'file'.
-static char *dialog1 = NULL;
-static char *menu1 = NULL;
+static wxChar *dialog1 = NULL;
+static wxChar *menu1 = NULL;
 #else
 // Other platforms should have sensible compilers that
 // cope with long strings.
@@ -76,39 +80,42 @@ MyApp::MyApp()
 bool MyApp::OnInit(void)
 {
 #if defined(__WXMSW__)
-  // Load the .wxr 'file' from a .rc resource, under Windows.
-  dialog1 = wxLoadUserResource("dialog1", "WXRDATA");
-  menu1 = wxLoadUserResource("menu1", "WXRDATA");
-  // All resources in the file (only one in this case) get parsed
-  // by this call.
-  wxResourceParseString(dialog1);
-  wxResourceParseString(menu1);
+    // Load the .wxr 'file' from a .rc resource, under Windows.
+    dialog1 = wxLoadUserResource(wxT("dialog1"), wxT("WXRDATA"));
+    menu1 = wxLoadUserResource(wxT("menu1"), wxT("WXRDATA"));
+    // All resources in the file (only one in this case) get parsed
+    // by this call.
+    wxResourceParseString(dialog1);
+    wxResourceParseString(menu1);
 #else
-  // Simply parse the data pointed to by the variable dialog1.
-  // If there were several resources, there would be several
-  // variables, and this would need to be called several times.
-  wxResourceParseData(dialog1);
-  wxResourceParseData(menu1);
+    // Simply parse the data pointed to by the variable dialog1.
+    // If there were several resources, there would be several
+    // variables, and this would need to be called several times.
+    wxResourceParseData(dialog1);
+    wxResourceParseData(menu1);
 #endif
 
-  // Create the main frame window
-  frame = new MyFrame((wxFrame *) NULL, -1, (char *) "wxWindows Resource Sample", wxPoint(-1, -1), wxSize(300, 250));
+    // Create the main frame window
+    frame = new MyFrame( (wxFrame *) NULL, -1,
+                         (char *) "wxWindows Resource Sample",
+                         wxPoint(-1, -1), wxSize(300, 250) );
+
+    // Give it a status line
+    frame->CreateStatusBar(2);
 
-  // Give it a status line
-  frame->CreateStatusBar(2);
+    wxMenuBar *menu_bar = wxResourceCreateMenuBar("menu1");
 
-  wxMenuBar *menu_bar = wxResourceCreateMenuBar("menu1");
-  
-  // Associate the menu bar with the frame
-  frame->SetMenuBar(menu_bar);
+    // Associate the menu bar with the frame
+    frame->SetMenuBar(menu_bar);
 
-  // Make a panel
-  frame->panel = new MyPanel(frame, -1, wxPoint(0, 0), wxSize(400, 400), 0, "MyMainFrame");
-  frame->Show(TRUE);
+    // Make a panel
+    frame->panel = new MyPanel( frame, -1, wxPoint(0, 0), wxSize(400, 400),
+                                0, "MyMainFrame" );
+    frame->Show(TRUE);
 
-  SetTopWindow(frame);
+    SetTopWindow(frame);
 
-  return TRUE;
+    return TRUE;
 }
 
 MyApp::~MyApp()
@@ -123,17 +130,20 @@ BEGIN_EVENT_TABLE(MyPanel, wxPanel)
     EVT_LEFT_DOWN( MyPanel::OnClick)
 END_EVENT_TABLE()
 
-MyPanel::MyPanel( wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, 
-  int style, const wxString &name ) : 
-  wxPanel( parent, id, pos, size, style, name )
+MyPanel::MyPanel
+(
+    wxWindow *parent, wxWindowID id, const wxPoint& pos,
+    const wxSize& size,
+    int style, const wxString &name
+) : wxPanel( parent, id, pos, size, style, name )
 {
 }
 
 void MyPanel::OnClick( wxMouseEvent &WXUNUSED(event2) )
 {
-  MyFrame *frame = (MyFrame*)(wxTheApp->GetTopWindow());
-  wxCommandEvent event;
-  frame->OnTestDialog( event );
+    MyFrame *frame = (MyFrame*)(wxTheApp->GetTopWindow());
+    wxCommandEvent event;
+    frame->OnTestDialog( event );
 }
 
 
@@ -144,10 +154,13 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
 END_EVENT_TABLE()
 
 // Define my frame constructor
-MyFrame::MyFrame(wxWindow *parent, const wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size):
-  wxFrame(parent, id, title, pos, size)
+MyFrame::MyFrame
+(
+    wxWindow *parent, const wxWindowID id,
+    const wxString& title, const wxPoint& pos, const wxSize& size
+) : wxFrame(parent, id, title, pos, size)
 {
-  panel = (wxWindow *) NULL;
+    panel = (wxWindow *) NULL;
 }
 
 void MyFrame::OnAbout( wxCommandEvent& WXUNUSED(event) )
@@ -164,15 +177,20 @@ void MyFrame::OnQuit( wxCommandEvent& WXUNUSED(event) )
 
 void MyFrame::OnTestDialog(wxCommandEvent& WXUNUSED(event) )
 {
-      MyDialog *dialog = new MyDialog;
-      if (dialog->LoadFromResource(this, "dialog1"))
-      {
+    MyDialog *dialog = new MyDialog;
+
+    if (dialog->LoadFromResource(this, "dialog1"))
+    {
         wxTextCtrl *text = (wxTextCtrl *)wxFindWindowByName("multitext3", dialog);
         if (text)
-          text->SetValue("wxWindows resource demo");
+        {
+            text->SetValue("wxWindows resource demo");
+        }
+
         dialog->ShowModal();
-      }
-      dialog->Close(TRUE);
+    }
+
+    dialog->Close(TRUE);
 }
 
 BEGIN_EVENT_TABLE(MyDialog, wxDialog)
@@ -183,12 +201,12 @@ END_EVENT_TABLE()
 
 void MyDialog::OnOk(wxCommandEvent& WXUNUSED(event) )
 {
-  //  EndModal(RESOURCE_OK);
+    //  EndModal(RESOURCE_OK);
 }
 
 void MyDialog::OnCancel(wxCommandEvent& WXUNUSED(event) )
 {
-  EndModal(ID_BUTTON109);
+    EndModal(ID_BUTTON109);
 }
 
 
index 89fe57e094628b82dc029ea6bda16997a25d86c5..796dd2a310a7bab03093696fdff70d5fe12da593 100644 (file)
@@ -263,128 +263,145 @@ MyFrame::Clear(void)
 
 void MyFrame::OnCommand( wxCommandEvent &event )
 {
-   switch (event.GetId())
-   {
-   case ID_QUIT:
-      Close( TRUE );
-      break;
-   case ID_PRINT:
-   {
-      wxPrinter printer;
-      wxLayoutPrintout printout(m_lwin->GetLayoutList(),_("M: Printout"));
-      if (! printer.Print(this, &printout, TRUE))
-         wxMessageBox(
-            _("There was a problem with printing the message:\n"
-              "perhaps your current printer is not set up correctly?"),
-            _("Printing"), wxOK);
-   }
-   break;
-   case ID_NOWRAP:
-   case ID_WRAP:
-      m_lwin->SetWrapMargin(event.GetId() == ID_NOWRAP ? 0 : 40);
-      break;
-   case ID_ADD_SAMPLE:
-      AddSampleText(m_lwin->GetLayoutList());
-      break;
-   case ID_CLEAR:
-      Clear();
-      break;
+    switch (event.GetId())
+    {
+    case ID_QUIT:
+        Close( TRUE );
+        break;
+    case ID_PRINT:
+    {
+        wxPrinter printer;
+        wxLayoutPrintout printout(m_lwin->GetLayoutList(),_("M: Printout"));
+        if (! printer.Print(this, &printout, TRUE))
+        {
+            // Had to remove the split up strings that used to be below, and
+            // put them into one long strong. Otherwise MSVC would give an
+            // error "C2308: concatenating mismatched wide strings" when
+            // building a Unicode version.
+            wxMessageBox
+            (
+                _("There was a problem with printing the message:\nperhaps your current printer is not set up correctly?"),
+                _("Printing"), wxOK
+            );
+        }
+        break;
+    }
+
+    case ID_NOWRAP:
+    case ID_WRAP:
+        m_lwin->SetWrapMargin(event.GetId() == ID_NOWRAP ? 0 : 40);
+        break;
+    case ID_ADD_SAMPLE:
+        AddSampleText(m_lwin->GetLayoutList());
+        break;
+    case ID_CLEAR:
+        Clear();
+        break;
    case ID_CLICK:
-      cerr << "Received click event." << endl;
-      break;
+        cerr << "Received click event." << endl;
+        break;
    case ID_PASTE:
-      m_lwin->Paste(TRUE);
-      m_lwin->Refresh(FALSE);
-      break;
+        m_lwin->Paste(TRUE);
+        m_lwin->Refresh(FALSE);
+        break;
 #ifdef __WXGTK__
-   case ID_PASTE_PRIMARY:
-      // text only from primary:
-      m_lwin->Paste(FALSE, TRUE);
-      m_lwin->Refresh(FALSE);
-      break;
-   case ID_COPY_PRIMARY:
-      // copy text-only to primary selection:
-      m_lwin->Copy(FALSE,FALSE,TRUE);
-      m_lwin->Refresh(FALSE);
-      break;
+    case ID_PASTE_PRIMARY:
+        // text only from primary:
+        m_lwin->Paste(FALSE, TRUE);
+        m_lwin->Refresh(FALSE);
+        break;
+    case ID_COPY_PRIMARY:
+        // copy text-only to primary selection:
+        m_lwin->Copy(FALSE,FALSE,TRUE);
+        m_lwin->Refresh(FALSE);
+        break;
 #endif
-   case ID_COPY:
-      m_lwin->Copy(TRUE,TRUE,FALSE);
-      m_lwin->Refresh(FALSE);
-      break;
-   case ID_CUT:
-      m_lwin->Cut();
-      m_lwin->Refresh(FALSE);
-      break;
+    case ID_COPY:
+        m_lwin->Copy(TRUE,TRUE,FALSE);
+        m_lwin->Refresh(FALSE);
+        break;
+    case ID_CUT:
+        m_lwin->Cut();
+        m_lwin->Refresh(FALSE);
+        break;
 #ifdef M_BASEDIR
-   case ID_FIND:
-      m_lwin->Find("void");
-      m_lwin->Refresh(FALSE);
-      break;
+    case ID_FIND:
+        m_lwin->Find("void");
+        m_lwin->Refresh(FALSE);
+        break;
 #endif
-   case ID_HTML:
-   {
-      wxLayoutExportObject *export0;
-      wxLayoutExportStatus status(m_lwin->GetLayoutList());
-
-      cout << "<HTML>" << endl;
-      while((export0 = wxLayoutExport( &status,
-                                      WXLO_EXPORT_AS_HTML)) != NULL)
-      {
-         if(export0->type == WXLO_EXPORT_HTML)
-            cout << *(export0->content.text);
-         else
-            ; // ignore itcout << "<!--UNKNOWN OBJECT>";
-         delete export0;
-      }
-   }
-   break;
-   case ID_TEXT:
-   {
-      wxLayoutExportObject *export0;
-      wxLayoutExportStatus status(m_lwin->GetLayoutList());
-
-      while((export0 = wxLayoutExport( &status, WXLO_EXPORT_AS_TEXT)) != NULL)
-      {
-         if(export0->type == WXLO_EXPORT_TEXT)
-            cout << *(export0->content.text);
-         else
-            cout << "<!--UNKNOWN OBJECT>";
-         delete export0;
-      }
-   }
-   break;
-   case ID_LONG_TEST:
-   {
-      wxString line;
-      wxLayoutList *llist = m_lwin->GetLayoutList();
-      for(int i = 1; i < 300; i++)
-      {
-         line.Printf("This is line number %d.", i);
-         llist->Insert(line);
-         llist->LineBreak();
-      }
-      llist->MoveCursorTo(wxPoint(0,0));
-      m_lwin->SetDirty();
-      m_lwin->Refresh();
-      break;
-   }
-
-   case ID_LINEBREAKS_TEST:
-      wxLayoutImportText(m_lwin->GetLayoutList(),
-                         "This is a text\n"
-                         "with embedded line\n"
-                         "breaks.\n");
-      m_lwin->SetDirty();
-      m_lwin->Refresh();
-      break;
-
-   case ID_URL_TEST:
-      // VZ: this doesn't work, of course, but I think it should -
-      //     wxLayoutWindow should have a flag m_highlightUrls and do it itself
-      //     (instead of doing it manually like M does now)
-      m_lwin->GetLayoutList()->Insert("http://www.wxwindows.org/");
-   }
+    case ID_HTML:
+    {
+        wxLayoutExportObject *export0;
+        wxLayoutExportStatus status(m_lwin->GetLayoutList());
+
+        cout << "<HTML>" << endl;
+        while((export0 = wxLayoutExport( &status,
+                                         WXLO_EXPORT_AS_HTML)) != NULL)
+        {
+            if(export0->type == WXLO_EXPORT_HTML)
+                cout << *(export0->content.text);
+            else
+                ; // ignore itcout << "<!--UNKNOWN OBJECT>";
+
+            delete export0;
+        }
+        break;
+    }
+
+    case ID_TEXT:
+    {
+        wxLayoutExportObject *export0;
+        wxLayoutExportStatus status(m_lwin->GetLayoutList());
+
+        while((export0 = wxLayoutExport( &status, WXLO_EXPORT_AS_TEXT)) != NULL)
+        {
+            if(export0->type == WXLO_EXPORT_TEXT)
+                cout << *(export0->content.text);
+            else
+                cout << "<!--UNKNOWN OBJECT>";
+
+            delete export0;
+        }
+
+        break;
+    }
+
+
+    case ID_LONG_TEST:
+    {
+        wxString line;
+        wxLayoutList *llist = m_lwin->GetLayoutList();
+        for(int i = 1; i < 300; i++)
+        {
+            line.Printf(wxT("This is line number %d."), i);
+            llist->Insert(line);
+            llist->LineBreak();
+        }
+
+        llist->MoveCursorTo(wxPoint(0,0));
+        m_lwin->SetDirty();
+        m_lwin->Refresh();
+        break;
+    }
+
+    case ID_LINEBREAKS_TEST:
+        wxLayoutImportText
+        (
+            m_lwin->GetLayoutList(),
+            wxT("This is a text\nwith embedded line\nbreaks.\n")
+        );
+
+        m_lwin->SetDirty();
+        m_lwin->Refresh();
+        break;
+
+    case ID_URL_TEST:
+        // VZ: this doesn't work, of course, but I think it should -
+        //     wxLayoutWindow should have a flag m_highlightUrls and do it itself
+        //     (instead of doing it manually like M does now)
+        m_lwin->GetLayoutList()->Insert("http://www.wxwindows.org/");
+    }
 };
 
 void MyFrame::OnPrint(wxCommandEvent& WXUNUSED(event))
index 3e696cde7ec8f3e41a68c1ee15709223c60ac56e..3a2ff3a6045cc13356d7c5c2b1554bbebde94c74 100644 (file)
@@ -81,7 +81,7 @@
    wxLayoutObject::DebugDump(void) const
    {
       wxString str;
-      str.Printf("%s",g_aTypeStrings[GetType()]);
+      str.Printf(wxT("%s"), g_aTypeStrings[GetType()]);
       return str;
    }
 #else
@@ -176,12 +176,17 @@ bool Contains(const wxRect &r, const wxPoint &p)
 static
 void ReadString(wxString &to, wxString &from)
 {
-   to = "";
-   const char *cptr = from.c_str();
-   while(*cptr && *cptr != '\n')
-      to += *cptr++;
-   if(*cptr) cptr++;
-   from = cptr;
+    to = wxT("");
+    const wxChar *cptr = from.c_str();
+    while(*cptr && *cptr != wxT('\n'))
+    {
+        to += cptr;
+        cptr++;
+    }
+
+    if(*cptr) cptr++;
+
+    from = cptr;
 }
 
 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
@@ -194,22 +199,23 @@ void ReadString(wxString &to, wxString &from)
 wxLayoutObject *
 wxLayoutObject::Read(wxString &istr)
 {
-   wxString tmp;
-   ReadString(tmp, istr);
-   int type = WXLO_TYPE_INVALID;
-   sscanf(tmp.c_str(),"%d", &type);
-
-   switch(type)
-   {
-   case WXLO_TYPE_TEXT:
-      return wxLayoutObjectText::Read(istr);
-   case WXLO_TYPE_CMD:
-      return wxLayoutObjectCmd::Read(istr);
-   case WXLO_TYPE_ICON:
-      return wxLayoutObjectIcon::Read(istr);
-   default:
-      return NULL;
-   }
+    wxString tmp;
+    ReadString(tmp, istr);
+    long l = WXLO_TYPE_INVALID;
+    tmp.ToLong(&l);
+    int type = (int) l;
+
+    switch(type)
+    {
+    case WXLO_TYPE_TEXT:
+        return wxLayoutObjectText::Read(istr);
+    case WXLO_TYPE_CMD:
+        return wxLayoutObjectCmd::Read(istr);
+    case WXLO_TYPE_ICON:
+        return wxLayoutObjectIcon::Read(istr);
+    default:
+        return NULL;
+    }
 }
 
 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
@@ -385,7 +391,7 @@ wxLayoutObjectText::DebugDump(void) const
    wxString str;
    str = wxLayoutObject::DebugDump();
    wxString str2;
-   str2.Printf(" `%s`", m_Text.c_str());
+   str2.Printf(wxT(" `%s`"), m_Text.c_str());
    return str+str2;
 }
 #endif
@@ -400,7 +406,7 @@ wxLayoutObjectIcon::wxLayoutObjectIcon(wxBitmap const &icon)
 {
    if ( !icon.Ok() )
    {
-      wxFAIL_MSG("invalid icon");
+      wxFAIL_MSG(wxT("invalid icon"));
 
       m_Icon = NULL;
 
@@ -590,46 +596,76 @@ wxLayoutObjectCmd::Write(wxString &ostr)
 wxLayoutObjectCmd *
 wxLayoutObjectCmd::Read(wxString &istr)
 {
-   wxLayoutObjectCmd *obj = new wxLayoutObjectCmd;
-
-   wxString tmp;
-   ReadString(tmp, istr);
-   sscanf(tmp.c_str(),"%d", &obj->m_StyleInfo->family);
-   ReadString(tmp, istr);
-   sscanf(tmp.c_str(),"%d", &obj->m_StyleInfo->size);
-   ReadString(tmp, istr);
-   sscanf(tmp.c_str(),"%d", &obj->m_StyleInfo->style);
-   ReadString(tmp, istr);
-   sscanf(tmp.c_str(),"%d", &obj->m_StyleInfo->weight);
-   ReadString(tmp, istr);
-   sscanf(tmp.c_str(),"%d", &obj->m_StyleInfo->underline);
-   ReadString(tmp, istr);
-   sscanf(tmp.c_str(),"%d", &obj->m_StyleInfo->m_fg_valid);
-   ReadString(tmp, istr);
-   sscanf(tmp.c_str(),"%d", &obj->m_StyleInfo->m_bg_valid);
-   if(obj->m_StyleInfo->m_fg_valid)
-   {
-      int red, green, blue;
-      ReadString(tmp, istr);
-      sscanf(tmp.c_str(),"%d", &red);
-      ReadString(tmp, istr);
-      sscanf(tmp.c_str(),"%d", &green);
-      ReadString(tmp, istr);
-      sscanf(tmp.c_str(),"%d", &blue);
-      obj->m_StyleInfo->m_fg = wxColour(red, green, blue);
-   }
-   if(obj->m_StyleInfo->m_bg_valid)
-   {
-      int red, green, blue;
-      ReadString(tmp, istr);
-      sscanf(tmp.c_str(),"%d", &red);
-      ReadString(tmp, istr);
-      sscanf(tmp.c_str(),"%d", &green);
-      ReadString(tmp, istr);
-      sscanf(tmp.c_str(),"%d", &blue);
-      obj->m_StyleInfo->m_bg = wxColour(red, green, blue);
-   }
-   return obj;
+    wxLayoutObjectCmd *obj = new wxLayoutObjectCmd;
+
+    long l = 0;
+    wxString tmp;
+    ReadString(tmp, istr);
+    tmp.ToLong(&l);
+    obj->m_StyleInfo->family = (int) l;
+
+
+    ReadString(tmp, istr);
+    tmp.ToLong(&l);
+    obj->m_StyleInfo->size = (int) l;
+
+    ReadString(tmp, istr);
+    tmp.ToLong(&l);
+    obj->m_StyleInfo->style = (int) l;
+
+    ReadString(tmp, istr);
+    tmp.ToLong(&l);
+    obj->m_StyleInfo->weight = (int) l;
+
+    ReadString(tmp, istr);
+    tmp.ToLong(&l);
+    obj->m_StyleInfo->underline = (int) l;
+
+    ReadString(tmp, istr);
+    tmp.ToLong(&l);
+    obj->m_StyleInfo->m_fg_valid = (int) l;
+
+    ReadString(tmp, istr);
+    tmp.ToLong(&l);
+    obj->m_StyleInfo->m_bg_valid = (int) l;
+
+    if(obj->m_StyleInfo->m_fg_valid)
+    {
+        int red, green, blue;
+        ReadString(tmp, istr);
+        tmp.ToLong(&l);
+        red = (int) l;
+
+        ReadString(tmp, istr);
+        tmp.ToLong(&l);
+        green = (int) l;
+
+        ReadString(tmp, istr);
+        tmp.ToLong(&l);
+        blue = (int) l;
+
+        obj->m_StyleInfo->m_fg = wxColour(red, green, blue);
+    }
+
+    if(obj->m_StyleInfo->m_bg_valid)
+    {
+        int red, green, blue;
+        ReadString(tmp, istr);
+        tmp.ToLong(&l);
+        red = (int) l;
+
+        ReadString(tmp, istr);
+        tmp.ToLong(&l);
+        green = (int) l;
+
+        ReadString(tmp, istr);
+        tmp.ToLong(&l);
+        blue = (int) l;
+
+        obj->m_StyleInfo->m_bg = wxColour(red, green, blue);
+    }
+
+    return obj;
 }
 
 
@@ -981,49 +1017,51 @@ wxLayoutLine::Delete(CoordType xpos, CoordType npos)
 bool
 wxLayoutLine::DeleteWord(CoordType xpos)
 {
-   wxASSERT(xpos >= 0);
-   CoordType offset;
-   MarkDirty(xpos);
+    wxASSERT(xpos >= 0);
+    CoordType offset;
+    MarkDirty(xpos);
+
+    wxLOiterator i = FindObject(xpos, &offset);
+
+    for(;;)
+    {
+        if(i == NULLIT) return false;
+        if((**i).GetType() != WXLO_TYPE_TEXT)
+        {
+            // This should only happen when at end of line, behind a non-text
+            // object:
+            if(offset == (**i).GetLength()) return false;
+            m_Length -= (**i).GetLength(); // -1
+            m_ObjectList.erase(i);
+            return true; // we are done
+        }
+        else
+        {  // text object:
+            if(offset == (**i).GetLength()) // at end of object
+            {
+                i++; offset = 0;
+                continue;
+            }
 
-   wxLOiterator i = FindObject(xpos, &offset);
+            wxLayoutObjectText *tobj = (wxLayoutObjectText *)*i;
+            size_t count = 0;
+            wxString str = tobj->GetText();
+            str = str.substr(offset,str.Length()-offset);
+            // Find out how many positions we need to delete:
+            // 1. eat leading space
+            while(isspace(str.c_str()[count])) count++;
+            // 2. eat the word itself:
+            while(isalnum(str.c_str()[count])) count++;
+            // now delete it:
+            wxASSERT(count+offset <= (size_t) (**i).GetLength());
+            ((wxLayoutObjectText *)*i)->GetText().erase(offset,count);
+            m_Length -= count;
 
-   for(;;)
-   {
-      if(i == NULLIT) return false;
-      if((**i).GetType() != WXLO_TYPE_TEXT)
-      {
-         // This should only happen when at end of line, behind a non-text
-         // object:
-         if(offset == (**i).GetLength()) return false;
-         m_Length -= (**i).GetLength(); // -1
-         m_ObjectList.erase(i);
-         return true; // we are done
-      }
-      else
-      {  // text object:
-         if(offset == (**i).GetLength()) // at end of object
-         {
-            i++; offset = 0;
-            continue;
-         }
-         wxLayoutObjectText *tobj = (wxLayoutObjectText *)*i;
-         size_t count = 0;
-         wxString str = tobj->GetText();
-         str = str.substr(offset,str.Length()-offset);
-         // Find out how many positions we need to delete:
-         // 1. eat leading space
-         while(isspace(str.c_str()[count])) count++;
-         // 2. eat the word itself:
-         while(isalnum(str.c_str()[count])) count++;
-         // now delete it:
-         wxASSERT(count+offset <= (size_t) (**i).GetLength());
-         ((wxLayoutObjectText *)*i)->GetText().erase(offset,count);
-         m_Length -= count;
-         return true;
-      }
-   }
+            return true;
+        }
+    }
 
-   wxFAIL_MSG("unreachable");
+    wxFAIL_MSG(wxT("unreachable"));
 }
 
 wxLayoutLine *
@@ -1322,7 +1360,8 @@ wxLayoutLine::Wrap(CoordType wrapmargin, wxLayoutList *llist)
    // find the object which covers the wrapmargin:
    CoordType offset;
    wxLOiterator i = FindObject(wrapmargin, &offset);
-   wxCHECK_MSG( i != NULLIT, FALSE, "Cannot find object covering wrapmargin.");
+   wxCHECK_MSG( i != NULLIT, FALSE,
+                wxT("Cannot find object covering wrapmargin."));
    
    // from this object on, the rest of the line must be copied to the
    // next one:
@@ -1451,7 +1490,8 @@ wxLayoutLine::ReNumber(void)
 void
 wxLayoutLine::MergeNextLine(wxLayoutList *llist)
 {
-   wxCHECK_RET(GetNextLine(),"wxLayout internal error: no next line to merge");
+   wxCHECK_RET( GetNextLine(),
+                wxT("wxLayout internal error: no next line to merge"));
    wxLayoutObjectList &list = GetNextLine()->m_ObjectList;
    wxLOiterator i;
 
@@ -1569,7 +1609,7 @@ void
 wxLayoutLine::Debug(void) const
 {
    wxPoint pos = GetPosition();
-   WXLO_DEBUG(("Line %ld, Pos (%ld,%ld), Height %ld, BL %ld, Font: %d",
+   WXLO_DEBUG((wxT("Line %ld, Pos (%ld,%ld), Height %ld, BL %ld, Font: %d"),
                (long int) GetLineNumber(),
                (long int) pos.x, (long int) pos.y,
                (long int) GetHeight(),
@@ -1675,7 +1715,7 @@ wxLayoutList::~wxLayoutList()
    Empty();
    m_FirstLine->DeleteLine(false, this);
 
-   wxASSERT_MSG( m_numLines == 0, "line count calculation broken" );
+   wxASSERT_MSG( m_numLines == 0, wxT("line count calculation broken"));
 }
 
 void
@@ -1728,8 +1768,10 @@ wxLayoutList::Read(wxString &istr)
       // check for a linebreak:
       wxString tmp;
       tmp = istr.BeforeFirst('\n');
-      int type = WXLO_TYPE_INVALID;
-      sscanf(tmp.c_str(),"%d", &type);
+      long l = WXLO_TYPE_INVALID;
+      tmp.ToLong(&l);
+      int type = (int) l;
+
       if(type == WXLO_TYPE_LINEBREAK)
       {
          LineBreak();
@@ -1962,8 +2004,8 @@ wxLayoutList::MoveCursorHorizontally(int n)
 bool
 wxLayoutList::MoveCursorWord(int n, bool untilNext)
 {
-   wxCHECK_MSG( m_CursorLine, false, "no current line" );
-   wxCHECK_MSG( n == -1 || n == +1, false, "not implemented yet" );
+   wxCHECK_MSG( m_CursorLine, false, wxT("no current line") );
+   wxCHECK_MSG( n == -1 || n == +1, false, wxT("not implemented yet") );
 
    CoordType moveDistance = 0;
    CoordType offset;
@@ -2052,9 +2094,9 @@ wxLayoutList::MoveCursorWord(int n, bool untilNext)
          if ( canAdvance )
          {
             const wxString& text = tobj->GetText();
-            const char *start = text.c_str();
-            const char *end = start + text.length();
-            const char *p = start + offset;
+            const wxChar *start = text.c_str();
+            const wxChar *end = start + text.length();
+            const wxChar *p = start + offset;
 
             if ( n < 0 )
             {
@@ -2123,7 +2165,8 @@ bool
 wxLayoutList::Insert(wxString const &text)
 {
    wxASSERT(m_CursorLine);
-   wxASSERT_MSG( text.Find('\n') == wxNOT_FOUND, "use wxLayoutImportText!" );
+   wxASSERT_MSG( text.Find(wxT('\n')) == wxNOT_FOUND,
+                 wxT("use wxLayoutImportText!") );
 
    if ( !text )
        return true;
@@ -2245,7 +2288,7 @@ wxLayoutList::WrapAll(CoordType column)
 bool
 wxLayoutList::Delete(CoordType npos)
 {
-   wxCHECK_MSG(m_CursorLine, false, "can't delete in non existing line");
+   wxCHECK_MSG(m_CursorLine, false, wxT("can't delete in non existing line"));
 
    if ( npos == 0 )
        return true;
@@ -2300,7 +2343,7 @@ wxLayoutList::Delete(CoordType npos)
                }
                else
                {
-                  wxFAIL_MSG("can't delete all this");
+                  wxFAIL_MSG(wxT("can't delete all this"));
 
                   return false;
                }
@@ -2537,8 +2580,8 @@ wxLayoutList::Draw(wxDC &dc,
    }
    InvalidateUpdateRect();
 
-   WXLO_DEBUG(("Selection is %s : %ld,%ld/%ld,%ld",
-               m_Selection.m_valid ? "valid" : "invalid",
+   WXLO_DEBUG((wxT("Selection is %s : %ld,%ld/%ld,%ld"),
+               m_Selection.m_valid ? wxT("valid") : wxT("invalid"),
                m_Selection.m_CursorA.x, m_Selection.m_CursorA.y,
                m_Selection.m_CursorB.x, m_Selection.m_CursorB.y));
 }
@@ -2650,14 +2693,14 @@ wxLayoutList::DrawCursor(wxDC &dc, bool active, wxPoint const &translate)
    coords += translate;
 
 #ifdef WXLAYOUT_DEBUG
-   WXLO_DEBUG(("Drawing cursor (%ld,%ld) at %ld,%ld, size %ld,%ld, line: %ld, len %ld",
+   WXLO_DEBUG((wxT("Drawing cursor (%ld,%ld) at %ld,%ld, size %ld,%ld, line: %ld, len %ld"),
                (long)m_CursorPos.x, (long)m_CursorPos.y,
                (long)coords.x, (long)coords.y, 
                (long)m_CursorSize.x, (long)m_CursorSize.y,
                (long)m_CursorLine->GetLineNumber(),
                (long)m_CursorLine->GetLength()));
 
-   wxLogStatus("Cursor is at (%d, %d)", m_CursorPos.x, m_CursorPos.y);
+   wxLogStatus(wxT("Cursor is at (%d, %d)"), m_CursorPos.x, m_CursorPos.y);
 #endif
 
 #ifdef WXLAYOUT_USE_CARET
@@ -2711,7 +2754,7 @@ wxLayoutList::StartSelection(const wxPoint& cposOrig, const wxPoint& spos)
    wxPoint cpos(cposOrig);
    if ( cpos.x == -1 )
       cpos = m_CursorPos;
-   WXLO_DEBUG(("Starting selection at %ld/%ld", cpos.x, cpos.y));
+   WXLO_DEBUG((wxT("Starting selection at %ld/%ld"), cpos.x, cpos.y));
    m_Selection.m_CursorA = cpos;
    m_Selection.m_CursorB = cpos;
    m_Selection.m_ScreenA = spos;
@@ -2729,7 +2772,7 @@ wxLayoutList::ContinueSelection(const wxPoint& cposOrig, const wxPoint& spos)
 
    wxASSERT(m_Selection.m_selecting == true);
    wxASSERT(m_Selection.m_valid == false);
-   WXLO_DEBUG(("Continuing selection at %ld/%ld", cpos.x, cpos.y));
+   WXLO_DEBUG((wxT("Continuing selection at %ld/%ld"), cpos.x, cpos.y));
 
    m_Selection.m_ScreenB = spos;
    m_Selection.m_CursorB = cpos;
@@ -2741,7 +2784,7 @@ wxLayoutList::EndSelection(const wxPoint& cposOrig, const wxPoint& spos)
    wxPoint cpos(cposOrig);
    if(cpos.x == -1) cpos = m_CursorPos;
    ContinueSelection(cpos, spos);
-   WXLO_DEBUG(("Ending selection at %ld/%ld", cpos.x, cpos.y));
+   WXLO_DEBUG((wxT("Ending selection at %ld/%ld"), cpos.x, cpos.y));
    // we always want m_CursorA <= m_CursorB!
    if( m_Selection.m_CursorA > m_Selection.m_CursorB )
    {
@@ -2930,7 +2973,7 @@ wxLayoutLine *
 wxLayoutList::GetLine(CoordType index) const
 {
    wxASSERT_MSG( (0 <= index) && (index < (CoordType)m_numLines),
-                 "invalid index" );
+                 wxT("invalid index") );
 
    wxLayoutLine *line;
    CoordType n = index;
@@ -3082,7 +3125,7 @@ wxLayoutList::ApplyStyle(wxLayoutStyleInfo const &si, wxDC &dc)
 void
 wxLayoutList::Debug(void)
 {
-   WXLO_DEBUG(("Cursor is in line %d, screen pos = (%d, %d)",
+   WXLO_DEBUG((wxT("Cursor is in line %d, screen pos = (%d, %d)"),
                m_CursorLine->GetLineNumber(),
                m_CursorScreenPos.x, m_CursorScreenPos.y));
 
@@ -3182,7 +3225,7 @@ bool wxLayoutPrintout::OnPrintPage(int page)
       top = (page - 1)*m_PrintoutHeight;
       bottom = top + m_PrintoutHeight; 
 
-      WXLO_DEBUG(("OnPrintPage(%d) printing from %d to %d", page, top, 
+      WXLO_DEBUG((wxT("OnPrintPage(%d) printing from %d to %d"), page, top, 
                   bottom));
       // SetDeviceOrigin() doesn't work here, so we need to manually
       // translate all coordinates.
index 0669c2580422434db023a889eab78945a4f63a8a..c965f6b322e19697984cdf7cfb7f3fc4f281c1be 100644 (file)
@@ -292,7 +292,7 @@ public:
    virtual wxString DebugDump(void) const;
 #endif
 
-   virtual CoordType GetLength(void) const { return strlen(m_Text.c_str()); }
+   virtual CoordType GetLength(void) const { return wxStrlen(m_Text.c_str()); }
 
    // for editing:
    wxString & GetText(void) { return m_Text; }
@@ -1273,7 +1273,7 @@ class wxLayoutDataObject : public wxCustomDataObject
 public:
    wxLayoutDataObject()
       {
-         SetFormat("application/wxlayoutlist");
+         SetFormat(wxT("application/wxlayoutlist"));
       }
 
    // type safe wrappers
index b8158f2e5b7d8e69fd6d81bba4742ff2fd683194..4383578c2cc3d3a1df89da3b241951a881a4f34e 100644 (file)
@@ -741,8 +741,11 @@ wxLayoutWindow::OnChar(wxKeyEvent& event)
                      && m_WrapMargin > 0
                      && m_llist->GetCursorPos().x > m_WrapMargin
                      && isspace(keyCode))
+                  {
                      m_llist->WrapLine(m_WrapMargin);
-                  m_llist->Insert((char)keyCode);
+                  }
+                  
+                  m_llist->Insert((wxChar)keyCode);
                   SetDirty();
                }
                else
index ccfef44cec48f8b1d13912a62754045e6aff57c4..182421b6a99b7f01cab0a5274b804150fb3bd8f3 100644 (file)
@@ -254,14 +254,14 @@ void MyFrame::ToggleLive(wxCommandEvent& event )
 void MyFrame::SetMinSize(wxCommandEvent& WXUNUSED(event) )
 {
     wxString str;
-    str.Printf( _T(_T("%d")), m_splitter->GetMinimumPaneSize());
+    str.Printf( wxT("%d"), m_splitter->GetMinimumPaneSize());
     str = wxGetTextFromUser(_T("Enter minimal size for panes:"), _T(""), str, this);
     if ( str.IsEmpty() )
         return;
 
     int minsize = wxStrtol( str, (wxChar**)NULL, 10 );
     m_splitter->SetMinimumPaneSize(minsize);
-    str.Printf( _T(_T("Min pane size = %d")), minsize);
+    str.Printf( wxT("Min pane size = %d"), minsize);
     SetStatusText(str, 1);
 }
 
index 3fea37e1ece57ee211fdb76dfeac8efb01cff32b..daa27c636ca9476e695c615d0d58c556683c823e 100644 (file)
@@ -471,7 +471,7 @@ void wxTCPEventHandler::Client_OnRequest(wxSocketEvent &event)
     data = new char[size];
     sockstrm->Read(data, size);
 
-    connection->OnExecute (topic_name, data, size, format);
+    connection->OnExecute (topic_name, (wxChar *) data, size, format);
 
     delete [] data;
     break;
@@ -488,7 +488,7 @@ void wxTCPEventHandler::Client_OnRequest(wxSocketEvent &event)
     data = new char[size];
     sockstrm->Read(data, size);
     
-    connection->OnAdvise (topic_name, item, data, size, format);
+    connection->OnAdvise (topic_name, item, (wxChar *) data, size, format);
 
     delete [] data;
     break;
index 6a7e4d547c09c042250a0b5cfeb58038e96d75ea..327e727944fc77173ca66062a82d975f433418c6 100644 (file)
@@ -734,7 +734,7 @@ _DDECallback(WORD wType,
                                            0);
                     DdeFreeDataHandle(hData);
                     if ( connection->OnExecute(connection->m_topicName,
-                                               connection->m_bufPtr,
+                                               (wxChar *) connection->m_bufPtr,
                                                (int)len,
                                                (wxIPCFormat) wFmt) )
                     {
@@ -874,7 +874,7 @@ _DDECallback(WORD wType,
                     DdeFreeDataHandle(hData);
                     if ( connection->OnAdvise(connection->m_topicName,
                                               item_name,
-                                              connection->m_bufPtr,
+                                              (wxChar *) connection->m_bufPtr,
                                               (int)len,
                                               (wxIPCFormat) wFmt) )
                     {