From ec3e670f9f9942d5de4c543edfbc87fc3e0cd797 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Mon, 13 Sep 1999 19:31:50 +0000 Subject: [PATCH] The beginings of wxHtmlWindow support in the wxPython demo git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3654 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- utils/wxPython/demo/Main.py | 107 ++++++++--- utils/wxPython/demo/data/imagemap.htm | 20 +++ utils/wxPython/demo/data/imagemap.png | Bin 0 -> 1186 bytes utils/wxPython/demo/data/pic.png | Bin 0 -> 31315 bytes utils/wxPython/demo/data/pic2.bmp | Bin 0 -> 23244 bytes utils/wxPython/demo/data/tables.htm | 116 ++++++++++++ utils/wxPython/demo/data/test.htm | 248 ++++++++++++++++++++++++++ utils/wxPython/demo/wxHtmlWindow.py | 106 +++++++++++ 8 files changed, 577 insertions(+), 20 deletions(-) create mode 100644 utils/wxPython/demo/data/imagemap.htm create mode 100644 utils/wxPython/demo/data/imagemap.png create mode 100644 utils/wxPython/demo/data/pic.png create mode 100644 utils/wxPython/demo/data/pic2.bmp create mode 100644 utils/wxPython/demo/data/tables.htm create mode 100644 utils/wxPython/demo/data/test.htm create mode 100644 utils/wxPython/demo/wxHtmlWindow.py diff --git a/utils/wxPython/demo/Main.py b/utils/wxPython/demo/Main.py index 92630666ee..175b0c4e15 100644 --- a/utils/wxPython/demo/Main.py +++ b/utils/wxPython/demo/Main.py @@ -23,7 +23,8 @@ _treeList = [ ('Miscellaneous Windows', ['wxGrid', 'wxSashWindow', 'wxScrolledWindow', 'wxSplitterWindow', - 'wxStatusBar', 'wxToolBar', 'wxNotebook']), + 'wxStatusBar', 'wxToolBar', 'wxNotebook', + 'wxHtmlWindow']), ('Common Dialogs', ['wxColourDialog', 'wxDirDialog', 'wxFileDialog', 'wxSingleChoiceDialog', 'wxTextEntryDialog', @@ -71,34 +72,42 @@ class wxPythonDemo(wxFrame): # Make a File menu self.mainmenu = wxMenuBar() menu = wxMenu() - mID = NewId() + mID = wxNewId() menu.Append(mID, 'E&xit', 'Get the heck outta here!') EVT_MENU(self, mID, self.OnFileExit) self.mainmenu.Append(menu, '&File') + # Make a Demo menu + menu = wxMenu() + for item in _treeList: + submenu = wxMenu() + for childItem in item[1]: + mID = wxNewId() + submenu.Append(mID, childItem) + EVT_MENU(self, mID, self.OnDemoMenu) + menu.AppendMenu(wxNewId(), item[0], submenu) + self.mainmenu.Append(menu, '&Demo') + + # Make a Help menu - mID = NewId() + mID = wxNewId() menu = wxMenu() menu.Append(mID, '&About', 'wxPython RULES!!!') EVT_MENU(self, mID, self.OnHelpAbout) self.mainmenu.Append(menu, '&Help') self.SetMenuBar(self.mainmenu) - selectedDemo = None - selectedDemoName = "Nada" - if len(sys.argv) == 2: - selectedDemoName = sys.argv[1] # Create a TreeCtrl - tID = NewId() + tID = wxNewId() + self.treeMap = {} self.tree = wxTreeCtrl(splitter, tID) root = self.tree.AddRoot("Overview") for item in _treeList: child = self.tree.AppendItem(root, item[0]) for childItem in item[1]: theDemo = self.tree.AppendItem(child, childItem) - if childItem == selectedDemoName: - selectedDemo = theDemo + self.treeMap[childItem] = theDemo self.tree.Expand(root) EVT_TREE_ITEM_EXPANDED (self.tree, tID, self.OnItemExpanded) @@ -142,9 +151,16 @@ class wxPythonDemo(wxFrame): # select initial items self.nb.SetSelection(0) self.tree.SelectItem(root) - if selectedDemo: - self.tree.SelectItem(selectedDemo) - self.tree.EnsureVisible(selectedDemo) + + if len(sys.argv) == 2: + try: + selectedDemo = self.treeMap[sys.argv[1]] + except: + selectedDemo = None + if selectedDemo: + self.tree.SelectItem(selectedDemo) + self.tree.EnsureVisible(selectedDemo) + #--------------------------------------------- def WriteText(self, text): @@ -242,13 +258,14 @@ class wxPythonDemo(wxFrame): def OnHelpAbout(self, event): - about = wxMessageDialog(self, - "wxPython is a Python extension module that\n" - "encapsulates the wxWindows GUI classes.\n\n" - "This demo shows off some of the capabilities\n" - "of wxPython.\n\n" - " Developed by Robin Dunn", - "About wxPython", wxOK) + #about = wxMessageDialog(self, + # "wxPython is a Python extension module that\n" + # "encapsulates the wxWindows GUI classes.\n\n" + # "This demo shows off some of the capabilities\n" + # "of wxPython.\n\n" + # " Developed by Robin Dunn", + # "About wxPython", wxOK) + about = MyAboutBox(self) about.ShowModal() about.Destroy() @@ -266,6 +283,56 @@ class wxPythonDemo(wxFrame): self.window = self.otherWin self.otherWin = None + #--------------------------------------------- + def OnDemoMenu(self, event): + print event.GetId(), self.mainmenu.GetLabel(event.GetId()) + try: + selectedDemo = self.treeMap[self.mainmenu.GetLabel(event.GetId())] + except: + selectedDemo = None + if selectedDemo: + self.tree.SelectItem(selectedDemo) + self.tree.EnsureVisible(selectedDemo) + + + +#--------------------------------------------------------------------------- +#--------------------------------------------------------------------------- + +class MyAboutBox(wxDialog): + text = ''' + + +
+ + + +

wxPython %s

+ +

wxPython is a Python extension module that +encapsulates the wxWindows GUI classes.

+ +

This demo shows off some of the capabilities +of wxPython. Select items from the menu or tree control, +sit back and enjoy. Be sure to take a peek at the source code for each +demo item so you can learn how to use the classes yourself.

+ +

wxPython is brought to you by Robin Dunn and
+Total Control Software, copyright 1999.

+ +

Please see license.txt for licensing information.

+
+ + +''' + def __init__(self, parent): + from wxPython.html import * + wxDialog.__init__(self, parent, -1, 'About wxPython') + self.html = wxHtmlWindow(self, -1, wxPoint(5,5), wxSize(400, 350)) + self.html.SetPage(self.text % wx.__version__) + wxButton(self, wxID_OK, 'OK', wxPoint(5, 365)).SetDefault() + self.Fit() + #--------------------------------------------------------------------------- #--------------------------------------------------------------------------- diff --git a/utils/wxPython/demo/data/imagemap.htm b/utils/wxPython/demo/data/imagemap.htm new file mode 100644 index 0000000000..edebd33b82 --- /dev/null +++ b/utils/wxPython/demo/data/imagemap.htm @@ -0,0 +1,20 @@ + + +ImageMap Test + + + + +This is test. + + + + + + + + + + + + diff --git a/utils/wxPython/demo/data/imagemap.png b/utils/wxPython/demo/data/imagemap.png new file mode 100644 index 0000000000000000000000000000000000000000..2307eaed4e94f954e6927691b01c08c8f1658e48 GIT binary patch literal 1186 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 + + + + + + + +

+This is TABLES +tests page...

+ + +(yes, really, see bellow:) +
Click here to go to original testing page... +
Click here to go to manuals... +
  +
+ + + + + + + + + + + +
Top left +
(two lines expression) +

paragraph done

Top right
Bottom leftBottom right
+ +

Subsampling is shown there: +
  + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
ab
cd
+
2
3 dflkj lkjfl dkjldkfjl flk jflkf lkjflkj ljlf ajlfj alff h khg hgj +gjg jg gjhfg fg gjh gjf jgf jgj f gjfgj kfajg 4 +
gh +
gfh +
gh +
hg +
5
+ +

This is "default" table - with no sizes givev: +
  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Hellolkfdsjlk fj dlfj lkfj lkjflk jlfk lk fjlk elwkf lkejflek f jlekjflkj +ljlk lk jlkf lefjl j flkj ljl lf lfj lfjl lj lwe lekf;eh kfejh lkh kjh +kjhkj hkj hkj lkh kjh kjlh kjshortebn formo lr lkdjsf lkjlf poer oi pjr po kpk 
abcd
123
AB
+ + + + + + + diff --git a/utils/wxPython/demo/data/test.htm b/utils/wxPython/demo/data/test.htm new file mode 100644 index 0000000000..e860212a79 --- /dev/null +++ b/utils/wxPython/demo/data/test.htm @@ -0,0 +1,248 @@ + + + + + +wxHTML Test + + + +click here to go to tables test page! +

+click here to go to IMAGEMAPs test page! + +

+This is - - default text, now switching to +

+

center, now still ctr, now exiting

+exited!.[link to down] +

Hello, this *is* default charset (helvetica, probably) and it is displayed +with one  COLOR CHANGE. Of course we +can have as many color changes as we can, what about this MADNESS? +

There was a space above. +
+


This was a line. (BTW we are in fixed font +/ typewriter font right now :-) +
This is in BOLD face. This is ITALIC. This is E +V E R Y T H I N G. +
  +


+

+

Right now, centered REALLY Big Text, +how do you like (space) it?

+ +
RIGHT: text-2, text-1, +text+0, +text+1, +text+2, +text+3, +text+4 +
we are right now
+ +
we are center now
+we are left now. +

Blue italic text is displayed there.... +

+ +
This is heading one.

+this is normal +
+

+This is CENTERED heading one

+Yes, hmmmmmmmmm........, right now, we should +display some tiny nice image, he? +
Testing image imageand this is text...... +

Testing image imageand +this is text...... +
Testing image image (try clicking on the image :-) and +this is text...... +
  +
  +

    +
  • +item 1
  • + +
  • +item 2
  • + +
      +
    • +nested item
    • + +
    • +nested item 2
    • +
    + +
  • +item 3
  • +
+ +
    +
  1. +item one
  2. + +
  3. +item two
  4. + +
      +
    1. +nsted item
    2. +
    + +
  5. +last numbered item
  6. +
+ +

+Heading 1

+Italic text now... +

+Heading 2

+and now? +

+Heading 3

+ +

+Heading 4

+ +
+Heading 5
+ +
+Heading 6
+And this is normal text, once again :-) +
  +
  +
  +
  +
  +
  +

And yes, we're in HTML DOCUMENT +

hello? +
  +


+

+

This is centered paragraph

+ +

This is new par? +

We switched to BOLD +

This is new paragraph Bold is off now. +

new par +

  ----------- +

Hello +

    this is standalone :-) +
  1. +This is item number one. iti lkdjfdl kjd lk jlkjdl kjlk jlf +jflkj d lfkjlkf jl jflkj flkwe lkhelf ;fk;fl kw;lfke ;ffj lkjflk wj lfjl +fkw ;k;ekf;lkfe ;kf;lk; ;j ;lrj;wfj;f ;eljfw; lfj;ewlfj dagdja gdj chga +kjegiquw iuqdb qiud iquwd hurray googoo.
  2. + +
  3. +two two two two two two twotwo TWO two two two two two two +twotwo TWO two two two two two two twotwo TWO two two two two two two twotwo +TWO two two two two two two twotwo TWO two two two two two two twotwo TWO +two two two two two two twotwo TWO
  4. + +
    (blockquote)two two two two two two twotwo +TWO two two two two two two twotwo TWO two two two two two two twotwo TWO +
    two two two two two two twotwo TWO two two two
    +two two two twotwo TWO two two two two two two twotwo TWO +two two two two two two twotwo TWO
    +two two two two two two twotwo TWO two two two two two two +twotwo TWO +
  5. +This is item nyumber 3.
  6. + +
  7. +This is item number one. iti lkdjfdl kjd lk jlkjdl kjlk jlf +jflkj d lfkjlkf jl jflkj flkwe lkhelf ;fk;fl kw;lfke ;ffj lkjflk wj lfjl +fkw ;k;ekf;lkfe ;kf;lk; ;j ;lrj;wfj;f ;eljfw; lfj;ewlfj dagdja gdj chga +kjegiquw iuqdb qiud iquwd hurray googoo.
  8. + +
  9. +two two two two two two twotwo TWO two two two two two two +twotwo TWO two two two two two two twotwo TWO two two two two two two twotwo +TWO two two two two two two twotwo TWO two two two two two two twotwo TWO +two two two two two two twotwo TWO two two two two two two twotwo TWO two +two two two two two twotwo TWO two two two two two two twotwo TWO two two +two two two two twotwo TWO two two two two two two twotwo TWO two two two +two two two twotwo TWO two two two two two two twotwo TWO two two two two +two two twotwo TWO two two two two two two twotwo TWO
  10. + +
  11. +This is item nyumber 3.
  12. + +
  13. +This is item number one. iti lkdjfdl kjd lk jlkjdl kjlk jlf +jflkj d lfkjlkf jl jflkj flkwe lkhelf ;fk;fl kw;lfke ;ffj lkjflk wj lfjl +fkw ;k;ekf;lkfe ;kf;lk; ;j ;lrj;wfj;f ;eljfw; lfj;ewlfj dagdja gdj chga +kjegiquw iuqdb qiud iquwd hurray googoo.
  14. + +
  15. +two two two two two two twotwo TWO two two two two two two +twotwo TWO two two two two two two twotwo TWO two two two two two two twotwo +TWO two two two two two two twotwo TWO two two two two two two twotwo TWO +two two two two two two twotwo TWO two two two two two two twotwo TWO two +two two two two two twotwo TWO two two two two two two twotwo TWO two two +two two two two twotwo TWO two two two two two two twotwo TWO two two two +two two two twotwo TWO two two two two two two twotwo TWO two two two two +two two twotwo TWO two two two two two two twotwo TWO
  16. + +
  17. +This is item nyumber 3.
  18. + +
  19. +This is item number one. iti lkdjfdl kjd lk jlkjdl kjlk jlf +jflkj d lfkjlkf jl jflkj flkwe lkhelf ;fk;fl kw;lfke ;ffj lkjflk wj lfjl +fkw ;k;ekf;lkfe ;kf;lk; ;j ;lrj;wfj;f ;eljfw; lfj;ewlfj dagdja gdj chga +kjegiquw iuqdb qiud iquwd hurray googoo.
  20. + +
  21. +two two two two two two twotwo TWO two two two two two two +twotwo TWO two two two two two two twotwo TWO two two two two two two twotwo +TWO two two two two two two twotwo TWO two two two two two two twotwo TWO +two two two two two two twotwo TWO two two two two two two twotwo TWO two +two two two two two twotwo TWO two two two two two two twotwo TWO two two +two two two two twotwo TWO two two two two two two twotwo TWO two two two +two two two twotwo TWO two two two two two two twotwo TWO two two two two +two two twotwo TWO two two two two two two twotwo TWO
  22. + +
  23. +This is item nyumber 3.
  24. + +
  25. +This is item number one. iti lkdjfdl kjd lk jlkjdl kjlk jlf +jflkj d lfkjlkf jl jflkj flkwe lkhelf ;fk;fl kw;lfke ;ffj lkjflk wj lfjl +fkw ;k;ekf;lkfe ;kf;lk; ;j ;lrj;wfj;f ;eljfw; lfj;ewlfj dagdja gdj chga +kjegiquw iuqdb qiud iquwd hurray googoo.
  26. + +
  27. +two two two two two two twotwo TWO two two two two two two +twotwo TWO two two two two two two twotwo TWO two two two two two two twotwo +TWO two two two two two two twotwo TWO two two two two two two twotwo TWO +two two two two two two twotwo TWO two two two two two two twotwo TWO
  28. + +


    two two two two two two twotwo TWO two two two two +two two twotwo TWO two two two two two two twotwo TWO two two two two two +two twotwo TWO +

    two two two two two two twotwo TWO two two two two two +two twotwo TWO two two two two two two twotwo TWO two two two two two two +twotwo TWO +

  29. +This is item nyumber 3.
  30. +
+Now, you will see some PRE text:

+

// This is sample C++ code:
+
+void main(int argc, char *argv[])
+{
+    printf("Go away, man!\n");
+    i = 666;
+    printf("\n\n\nCRASH\n  DOWN NOW. . .  \n");
+}
+ + + + + diff --git a/utils/wxPython/demo/wxHtmlWindow.py b/utils/wxPython/demo/wxHtmlWindow.py new file mode 100644 index 0000000000..07ec21a554 --- /dev/null +++ b/utils/wxPython/demo/wxHtmlWindow.py @@ -0,0 +1,106 @@ + +from wxPython.wx import * +from wxPython.html import * +from wxPython.lib.sizers import * + +#---------------------------------------------------------------------- + +# This shows how to catch the OnLinkClicked non-event. (It's a virtual +# method in the C++ code...) +class MyHtmlWindow(wxHtmlWindow): + def __init__(self, parent, id, log): + wxHtmlWindow.__init__(self, parent, id) + self.log = log + + def OnLinkClicked(self, link): + self.log.WriteText('OnLinkClicked: %s\n' % link) + + # Virtuals in the base class have been renamed with base_ on the font. + self.base_OnLinkClicked(link) + + + +class TestHtmlPanel(wxPanel): + def __init__(self, parent, frame, log): + wxPanel.__init__(self, parent, -1) + self.log = log + self.frame = frame + + + self.html = MyHtmlWindow(self, -1, log) + self.html.SetRelatedFrame(frame, "wxPython: (A Demonstration) -- %s") + self.html.SetRelatedStatusBar(0) + + self.box = box.wxBoxSizer(wxVERTICAL) + self.box.Add(self.html, 1) + + subbox = wxBoxSizer(wxHORIZONTAL) + btn = wxButton(self, 1201, "Show Default") + EVT_BUTTON(self, 1201, self.OnShowDefault) + subbox.Add(btn, 1) + + btn = wxButton(self, 1202, "Load File") + EVT_BUTTON(self, 1202, self.OnLoadFile) + subbox.Add(btn, 1) + + btn = wxButton(self, 1203, "With Widgets") + EVT_BUTTON(self, 1203, self.OnWithWidgets) + subbox.Add(btn, 1) + + btn = wxButton(self, 1204, "Back") + EVT_BUTTON(self, 1204, self.OnBack) + subbox.Add(btn, 1) + + btn = wxButton(self, 1205, "Forward") + EVT_BUTTON(self, 1205, self.OnForward) + subbox.Add(btn, 1) + + self.box.Add(subbox) + self.OnShowDefault(None) + + + def OnSize(self, event): + size = self.GetClientSize() + self.box.Layout(size) + + + def OnShowDefault(self, event): + self.html.LoadPage("data/test.htm") + + + def OnLoadFile(self, event): + pass + + + def OnWithWidgets(self, event): + pass + + def OnBack(self, event): + if not self.html.HistoryBack(): + wxMessageBox("No more items in history!") + + def OnForward(self, event): + if not self.html.HistoryForward(): + wxMessageBox("No more items in history!") + + +#---------------------------------------------------------------------- + +def runTest(frame, nb, log): + win = TestHtmlPanel(nb, frame, log) + return win + + +#---------------------------------------------------------------------- + + + + + +overview = """\ +wxHtmlWindow is capable of parsing and rendering most simple HTML tags. + +It is not intended to be a high-end HTML browser. If you're looking for something like that try http://www.mozilla.org - there's a chance you'll be able to make their widget wxWindows-compatible. I'm sure everyone will enjoy your work in that case... + +""" +