Allow compiling for iPhone simulator from command line by introducing the new flag --enable-iphonesimulator (PR #25688)

133 views
Skip to first unread message

RobertRoeb

unread,
Aug 8, 2025, 7:22:10 AMAug 8
to wx-...@googlegroups.com, Subscribed

Smallest change possible to make it work and instructions that work for me. The configure skript from libtiff doesn't seem to understand that this is cross-compilation and fails in a "sanity check", so it needs to be disabled.

wxIPhone.png (view on web)

You can view, comment on, or merge this pull request online at:

  https://github.com/wxWidgets/wxWidgets/pull/25688

Commit Summary

  • 5751d2f Allow compiling for iPhone simulator from command line by

File Changes

(3 files)

Patch Links:


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688@github.com>

RobertRoeb

unread,
Aug 8, 2025, 3:04:01 PMAug 8
to wx-...@googlegroups.com, Push

@RobertRoeb pushed 1 commit.


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/before/5751d2f4913786d9e3e59f8639c6e49e50448abb/after/d17a3f182cb10252ce1688c69200e48afea06101@github.com>

RobertRoeb

unread,
Aug 9, 2025, 5:33:49 AMAug 9
to wx-...@googlegroups.com, Push

@RobertRoeb pushed 1 commit.

  • d2ce14d Enable wxChoice, wxChoiceBook and wxBookCtrl for iPhone


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/before/d17a3f182cb10252ce1688c69200e48afea06101/after/d2ce14d80f70e0d72ed5b5863042cb2dd88f6dac@github.com>

RobertRoeb

unread,
Aug 9, 2025, 9:21:12 AMAug 9
to wx-...@googlegroups.com, Push

@RobertRoeb pushed 1 commit.

  • 87f0081 Implement EVT_CHOICE and wxChoice::GetSelection(), this makes wxChoiceCtrl work^


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/before/d2ce14d80f70e0d72ed5b5863042cb2dd88f6dac/after/87f0081aea8fcee850805a7c60b342365f41ce55@github.com>

RobertRoeb

unread,
Aug 9, 2025, 11:41:09 AMAug 9
to wx-...@googlegroups.com, Push

@RobertRoeb pushed 1 commit.

  • 7e132c0 Allow label next to wxCheckBox ("switch") on iOS


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/before/87f0081aea8fcee850805a7c60b342365f41ce55/after/7e132c0083cf8294335d33f25e3c2807fdb438fc@github.com>

RobertRoeb

unread,
Aug 9, 2025, 12:42:35 PMAug 9
to wx-...@googlegroups.com, Push

@RobertRoeb pushed 1 commit.


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/before/7e132c0083cf8294335d33f25e3c2807fdb438fc/after/aa02ec41f919b70a4d86db78b1194da7e6f640c8@github.com>

RobertRoeb

unread,
Aug 9, 2025, 4:55:35 PMAug 9
to wx-...@googlegroups.com, Push

@RobertRoeb pushed 1 commit.

  • 4662d96 Added wxNotebook, actually serving as the NavigationBar at the bottom of an app's main screen


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/before/aa02ec41f919b70a4d86db78b1194da7e6f640c8/after/4662d96da1ef7f647590b2b78e18626ba3c3228d@github.com>

RobertRoeb

unread,
Aug 11, 2025, 5:00:11 AMAug 11
to wx-...@googlegroups.com, Push

@RobertRoeb pushed 1 commit.

  • 85dee1d Implement wxScrolledWindow with UIScrollView. Since iOS has no scrollbars you set size through SetVirtualSize and you get THUMBTRACK events only


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/before/4662d96da1ef7f647590b2b78e18626ba3c3228d/after/85dee1d6cfe6a6cca57821dfb163d1d5d0c2d26a@github.com>

RobertRoeb

unread,
Aug 11, 2025, 6:14:14 AMAug 11
to wx-...@googlegroups.com, Push

@RobertRoeb pushed 2 commits.

  • 00e026c Clarify the resources directory on iOS is actually the base bundle directory
  • 2a9f96f Enable wxHtmlWindow on iOS


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/before/85dee1d6cfe6a6cca57821dfb163d1d5d0c2d26a/after/2a9f96fecdcd31765fdad314aab586675f31cc61@github.com>

RobertRoeb

unread,
Aug 11, 2025, 6:51:22 AMAug 11
to wx-...@googlegroups.com, Push

@RobertRoeb pushed 1 commit.

  • 736b2fb Enable wxDataCtrl on iOS.


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/before/2a9f96fecdcd31765fdad314aab586675f31cc61/after/736b2fb653ff2181800aaa31180ac476ec551b23@github.com>

RobertRoeb

unread,
Aug 11, 2025, 10:19:35 AMAug 11
to wx-...@googlegroups.com, Push

@RobertRoeb pushed 1 commit.

  • 401ddf4 For iOS, scrolling can only happen in the actual client window using your fingers.


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/before/736b2fb653ff2181800aaa31180ac476ec551b23/after/401ddf4e03687cfbb81a719e5f2077ee347c0e97@github.com>

RobertRoeb

unread,
Aug 11, 2025, 10:29:40 AMAug 11
to wx-...@googlegroups.com, Push

@RobertRoeb pushed 1 commit.

  • 9569c2a Mention scrolling behaviour in iOS.


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/before/401ddf4e03687cfbb81a719e5f2077ee347c0e97/after/9569c2adbd5b1f6ab1572a5ceef8aa8c1373ded6@github.com>

RobertRoeb

unread,
Aug 11, 2025, 3:10:08 PMAug 11
to wx-...@googlegroups.com, Push

@RobertRoeb pushed 1 commit.

  • 64d0e4d Added wxSystemSettings metric to indicate area covered by phone status bar and possibly on screen keyboard, use that to position toolbar correctly on iOS. No success in getting background behind system statusbar with right colour


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/before/9569c2adbd5b1f6ab1572a5ceef8aa8c1373ded6/after/64d0e4dd9745644c01a2b17880d7e4e3275395af@github.com>

Lauri Nurmi

unread,
Aug 11, 2025, 3:22:36 PMAug 11
to wx-...@googlegroups.com, Subscribed

@lanurmi commented on this pull request.

I'd like to point out that the commit message of this commit and various previous ones does not follow the "standard rules" used in wxWidgets's git. That is, a short title, followed by an empty line, and a longer description.

(Also note that commit messages can be modified without redoing everything or creating a new PR.)


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/review/3107422118@github.com>

RobertRoeb

unread,
Aug 11, 2025, 4:07:39 PMAug 11
to wx-...@googlegroups.com, Push

@RobertRoeb pushed 1 commit.

  • 6b22952 In any second frame (having a parent) add a back button and title on iOS. Simple solution before using UINavigationController


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/before/64d0e4dd9745644c01a2b17880d7e4e3275395af/after/6b2295217a0ce67db4b02fd8ac2e5eb316cc5bfb@github.com>

RobertRoeb

unread,
Aug 12, 2025, 4:18:40 AMAug 12
to wx-...@googlegroups.com, Push

@RobertRoeb pushed 1 commit.

  • c9a6eb0 Added wxART_PREV_SCREEN for the image of the back button in smartphone apps. Documented this back button and behaviour for wxFrame with parents


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/before/6b2295217a0ce67db4b02fd8ac2e5eb316cc5bfb/after/c9a6eb0b2b6570e16fe0c790aa06a92359e4e277@github.com>

RobertRoeb

unread,
Aug 12, 2025, 4:04:43 PMAug 12
to wx-...@googlegroups.com, Push

@RobertRoeb pushed 1 commit.

  • 340ff24 Added a second internal implementation of wxChoice as segmented buttons on iOS


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/before/c9a6eb0b2b6570e16fe0c790aa06a92359e4e277/after/340ff243d1cc43453f9727cf1223e6d79665d499@github.com>

Wlodzimierz-ABX-Skiba

unread,
Aug 13, 2025, 3:05:57 AMAug 13
to wx-...@googlegroups.com, Subscribed
Wlodzimierz-ABX-Skiba left a comment (wxWidgets/wxWidgets#25688)

Hi @RobertRoeb ! I'm unsure segmented buttons should be implemented as wxChoice. This does not look like wxChoice is supposed to look in general. I believe segmented buttons should be rather implemented as some new control with some future general implementation added later for other platforms. I would rather add this as separate PR since this is new feature rather than simple improvement. Regards, ABX


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/c3182440764@github.com>

RobertRoeb

unread,
Aug 13, 2025, 3:19:25 PMAug 13
to wx-...@googlegroups.com, Push

@RobertRoeb pushed 1 commit.

  • cc38f54 Tried really hard to implement ShowModal(), but iOS does not seem support a runloop apart from the main one.


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/before/340ff243d1cc43453f9727cf1223e6d79665d499/after/cc38f5477b822c99724e71025316cda63bf750db@github.com>

VZ

unread,
Aug 13, 2025, 4:58:17 PMAug 13
to wx-...@googlegroups.com, Subscribed

@vadz requested changes on this pull request.

Sorry, I ran out of steam before the end but it's clear that while there are a lot of potentially useful things here, there are also potentially quite a few things to change, e.g. I'm not at all convinced that we want to represent wxChoice with segmented buttons.

It would be great to split this PR into independent changes in order to discuss them separately as discussing all of them here will probably become unmanageable pretty quickly.

TIA!


In include/wx/bookctrl.h:

> @@ -437,7 +437,7 @@ typedef void (wxEvtHandler::*wxBookCtrlEventFunction)(wxBookCtrlEvent&);
     #define EVT_BOOKCTRL_PAGE_CHANGING(id, fn)     EVT_NOTEBOOK_PAGE_CHANGING(id, fn)
 #else
     // dedicated to Smartphones
-    #include "wx/choicebk.h"
+    // #include "wx/choicebk.h"

This doesn't look intentional.


In configure.ac:

> @@ -425,6 +425,7 @@ WX_ARG_ONLY_WITH(directfb,      [  --with-directfb         use DirectFB], [wxUSE
 WX_ARG_ONLY_WITH(x11,           [  --with-x11              use X11], [wxUSE_X11="$withval" wxUSE_UNIVERSAL="yes" CACHE_X11=1 TOOLKIT_GIVEN=1])
 WX_ARG_ONLY_WITH(qt,            [  --with-qt               use Qt], [wxUSE_QT="$withval" CACHE_QT=1 TOOLKIT_GIVEN=1])
 WX_ARG_ENABLE(nanox,       [  --enable-nanox          use NanoX], wxUSE_NANOX)
+WX_ARG_ENABLE(iphonesimulator,  [  --enable-iphonesimulator   commpile for iPhone simulator], wxUSE_IPHONESIMULATOR)

Could we avoid using this option and just check if host matches *apple-darwin_sim instead? This would seem to be a simpler and more natural way to handle this than using artificially different (IIUC) host and build triplets in this case by specifying the OS version for only one but not the other.


In include/wx/osx/iphone/chkconf.h:

> @@ -58,11 +58,6 @@
 #define wxUSE_TOOLTIPS 0
 #endif
 
-#if wxUSE_DATAVIEWCTRL

Does it actually work there? It really doesn't look so... And in this case this fragment should remain.


In include/wx/osx/iphone/private.h:

> @@ -38,7 +38,7 @@ wxBitmapBundle WXDLLIMPEXP_CORE wxOSXCreateSystemBitmapBundle(const wxString& id
 class WXDLLIMPEXP_CORE wxWidgetIPhoneImpl : public wxWidgetImpl
 {
 public :
-    wxWidgetIPhoneImpl( wxWindowMac* peer , WXWidget w, int flags = 0 ) ;
+    wxWidgetIPhoneImpl( wxWindowMac* peer , WXWidget w, int flags = 0, void *c = NULL  ) ;

A comment explaining what c would be welcome but if not then at least let's give an actual name, e.g.

⬇️ Suggested change
-    wxWidgetIPhoneImpl( wxWindowMac* peer , WXWidget w, int flags = 0, void *c = NULL  ) ;
+    wxWidgetIPhoneImpl( wxWindowMac* peer , WXWidget w, int flags = 0, void* controller = nullptr ) ;

Using some type different from void* would be great too...


In include/wx/osx/iphone/private.h:

> @@ -124,8 +126,11 @@ public :
 
     virtual void        controlAction(void* sender, wxUint32 controlEvent, WX_UIEvent rawEvent);
     virtual void         controlTextDidChange();
+
+    void*               GetController() { return m_controller; }
⬇️ Suggested change
-    void*               GetController() { return m_controller; }
+    void*               GetController() const { return m_controller; }

In include/wx/osx/iphone/private.h:

> @@ -225,13 +230,12 @@ protected :
 
     @end
 
-    @interface wxUIView : UIView
+    @interface wxUIView : UIScrollView

I'm not sure what is wxUIView used exactly for, but it looks weird to make all views scrollable. Are you sure we need to do it?


In include/wx/osx/iphone/private.h:

>      {
     }
 
     @end // wxUIView
 
-

It would be great to avoid whitespace-only changed intermingled with significant ones please.


In include/wx/settings.h:

> +    wxSYS_DEVICE_AREA_TOP,
+    wxSYS_DEVICE_AREA_BOTTOM,
+    wxSYS_DEVICE_AREA_LEFT,
+    wxSYS_DEVICE_AREA_RIGHT

We really should add this to wxDisplay if it's not already covered by its GetClientArea() and not here, this is basically a legacy interface.


In include/wx/simplebook.h:

> @@ -11,6 +11,7 @@
 #define _WX_SIMPLEBOOK_H_
 
 #include "wx/compositebookctrl.h"
+#include "wx/choicebk.h"

This definitely doesn't seem right.


On art/prev_screen.xpm:

We typically use PNGs or SVGs for new images, not XPM.


In interface/wx/artprov.h:

> @@ -212,6 +214,7 @@ const char* wxART_WX_LOGO;
      @li @c wxART_CDROM
      @li @c wxART_REMOVABLE
      @li @c wxART_WX_LOGO (since 3.1.6)
+     @li @c wxART_PREV_SCREEN (since 3.1.6)
⬇️ Suggested change
-     @li @c wxART_PREV_SCREEN (since 3.1.6)
+     @li @c wxART_PREV_SCREEN (since 3.3.2)

In interface/wx/choice.h:

> @@ -15,6 +15,8 @@
     @beginStyleTable
     @style{wxCB_SORT}
            Sorts the entries alphabetically.
+    @style{wxCH_BUTTONS}

Shouldn't this be a style of wxToolBar? wxChoice really isn't supposed to look like this IMO.


In src/osx/carbon/frame.cpp:

> @@ -60,6 +66,20 @@ bool wxFrame::Create(wxWindow *parent,
     if ( !wxTopLevelWindow::Create(parent, id, title, pos, size, style, name) )
         return false;
 
+#ifdef __WXOSX_IPHONE__
+    if (parent != NULL) {
⬇️ Suggested change
-    if (parent != NULL) {
+    if (parent != nullptr)
+    {

In src/osx/carbon/frame.cpp:

> @@ -60,6 +66,20 @@ bool wxFrame::Create(wxWindow *parent,
     if ( !wxTopLevelWindow::Create(parent, id, title, pos, size, style, name) )
         return false;
 
+#ifdef __WXOSX_IPHONE__
+    if (parent != NULL) {
+        // We are on the next screen, provide a back button and title
+        wxToolBar *tb = CreateToolBar();
+        // tb->AddTool( wxID_CLOSE, wxEmptyString, wxArtProvider::GetBitmap(wxART_PREV_SCREEN) ); doesn't work for some reason
+        tb->AddTool( wxID_CLOSE, wxEmptyString, wxBitmap( prev_screen_xpm ) );
+        tb->AddStretchableSpace();  // doesn't yet stretch on iOS, so at least at two
⬇️ Suggested change
-        tb->AddStretchableSpace();  // doesn't yet stretch on iOS, so at least at two
+        tb->AddStretchableSpace();  // doesn't yet stretch on iOS, so at least add two

In src/osx/iphone/checkbox.mm:

>      {
         [m_control setOn:v != 0 animated:NO];
     }
+
+    void Move(int x, int y, int width, int height) override
+    {
+        wxWidgetIPhoneImpl::Move( x, y, width, height );
+        m_label->SetPosition( wxPoint(x + 65, y+5) );  // TODO: align properly

It's not just alignment, it's the horizontal offset too. We really should at least use GetChar{Width,Height}() here instead of hardcoding these values.


In src/osx/iphone/choice.mm:

> +    wxSegmentedChoiceIPhoneImpl(wxWindowMac *wxpeer, wxUISegmentedControl *v)
+    : wxWidgetIPhoneImpl(wxpeer, v)
+    {
+    }
+
+    void InsertItem( size_t pos, int itemid, const wxString& text) override
+    {
+        wxCFStringRef cftext(text);
+        [((wxUISegmentedControl*)m_osxView) insertSegmentWithTitle:cftext.AsNSString() atIndex:pos animated:NO];
+        [((wxUISegmentedControl*)m_osxView) setEnabled: YES forSegmentAtIndex: pos ];
+    }
+
+    size_t GetNumberOfItems() const override
+    {
+        int value = [((wxUISegmentedControl*)m_osxView) numberOfSegments];
+        wxLogMessage( "GetNumberOfItems()", value );
⬇️ Suggested change
-        wxLogMessage( "GetNumberOfItems()", value );

In src/osx/iphone/choice.mm:

>  
-    wxChoiceIPhoneImpl* c = new wxChoiceIPhoneImpl( wxpeer, v );
+    wxWidgetImplType *c = NULL;
+
+    if ((style & wxCH_BUTTONS) != 0) {
⬇️ Suggested change
-    if ((style & wxCH_BUTTONS) != 0) {
+    if ((style & wxCH_BUTTONS) != 0)
+    {

In src/osx/iphone/choice.mm:

>  
-    wxChoiceIPhoneImpl* c = new wxChoiceIPhoneImpl( wxpeer, v );
+    wxWidgetImplType *c = NULL;
+
+    if ((style & wxCH_BUTTONS) != 0) {
+        wxUISegmentedControl* v = [[wxUISegmentedControl alloc] initWithFrame:r];
+        // [v setMomentary: NO];
+        c = new wxSegmentedChoiceIPhoneImpl( wxpeer, v );
+    } else { 
⬇️ Suggested change
-    } else { 
+    }
+    else
+    { 

In src/osx/iphone/dialog.mm:

> @@ -19,6 +19,7 @@
 #endif // WX_PRECOMP
 
 #include "wx/osx/private.h"
+#include "wx/log.h"
⬇️ Suggested change
-#include "wx/log.h"

In src/osx/iphone/evtloop.mm:

> @@ -32,6 +32,7 @@
 #endif
 
 #include "wx/osx/private.h"
+#include "wx/log.h"
⬇️ Suggested change
-#include "wx/log.h"

In src/osx/iphone/nonownedwnd.mm:

> @@ -13,6 +13,8 @@
 
 #include "wx/nonownedwnd.h"
 #include "wx/frame.h"
+#include "wx/settings.h"
+#include "wx/log.h"
⬇️ Suggested change
-#include "wx/log.h"

and remove wxLogMessage() calls below.


In interface/wx/artprov.h:

> @@ -212,6 +214,7 @@ const char* wxART_WX_LOGO;
      @li @c wxART_CDROM
      @li @c wxART_REMOVABLE
      @li @c wxART_WX_LOGO (since 3.1.6)
+     @li @c wxART_PREV_SCREEN (since 3.1.6)

Also, it would be nice to explain how is this one different from wxART_GO_BACK.


In src/osx/carbon/frame.cpp:

> @@ -60,6 +66,20 @@ bool wxFrame::Create(wxWindow *parent,
     if ( !wxTopLevelWindow::Create(parent, id, title, pos, size, style, name) )
         return false;
 
+#ifdef __WXOSX_IPHONE__
+    if (parent != NULL) {
+        // We are on the next screen, provide a back button and title
+        wxToolBar *tb = CreateToolBar();
+        // tb->AddTool( wxID_CLOSE, wxEmptyString, wxArtProvider::GetBitmap(wxART_PREV_SCREEN) ); doesn't work for some reason
+        tb->AddTool( wxID_CLOSE, wxEmptyString, wxBitmap( prev_screen_xpm ) );
+        tb->AddStretchableSpace();  // doesn't yet stretch on iOS, so at least at two

Also, maybe we should modify the function itself to make the stretchable spaces twice as wide?


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/review/3117617837@github.com>

RobertRoeb

unread,
Aug 14, 2025, 3:35:38 AMAug 14
to wx-...@googlegroups.com, Push

@RobertRoeb pushed 1 commit.

  • c6ba6dd Enabled wxVListBox and wxVScrollHelper, wxVScrolledCanvas classes and its derivates


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/before/cc38f5477b822c99724e71025316cda63bf750db/after/c6ba6dd78f47f66a86dbb22dec19865a4edd545c@github.com>

RobertRoeb

unread,
Aug 14, 2025, 8:08:09 AMAug 14
to wx-...@googlegroups.com, Push

@RobertRoeb pushed 1 commit.

  • 335b699 Get page labels/titles of wxNotebook aka future wxNavigationCtrl right


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/before/c6ba6dd78f47f66a86dbb22dec19865a4edd545c/after/335b6997da78e25d61d385f56af4c9503b0cf7c5@github.com>

RobertRoeb

unread,
Aug 17, 2025, 6:13:20 AMAug 17
to wx-...@googlegroups.com, Push

@RobertRoeb pushed 3 commits.

  • 89c2572 Further work on scrolling code, wxScrolledWindow::SetTarget, drawing glitches
  • 8af7756 Enforce that iOS can only scroll in single pixel steps
  • 1b23093 Controversial approach: Adapt wxVarVScrollHelper to no longer be Var on iOS which only knows fixed 1 pixel scrolling with finger


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/before/335b6997da78e25d61d385f56af4c9503b0cf7c5/after/1b23093619333ad47133b4ebcf64c5f56c0b0cf4@github.com>

RobertRoeb

unread,
Aug 17, 2025, 6:29:12 AMAug 17
to wx-...@googlegroups.com, Subscribed
RobertRoeb left a comment (wxWidgets/wxWidgets#25688)

Screenshots from major progress on drawing and scrolling support

wxVListBox.png (view on web) wxDataViewCtrl.png (view on web) SetTargetWindow.png (view on web) wxHtmlWindow.png (view on web)


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/c3194293042@github.com>

RobertRoeb

unread,
Aug 30, 2025, 12:08:10 PM (8 days ago) Aug 30
to wx-...@googlegroups.com, Subscribed
RobertRoeb left a comment (wxWidgets/wxWidgets#25688)

. I'm not at all convinced that we want to represent
wxChoice with segmented buttons.

The current wxChoice uses the picker control, which surely does not look like a MSW choice either. I can create a new wxSegmentedButton control with no implementation elsewhere. Then how should I implement wxBookCtrl? This control needs a segmented button on top, wxChoiceBook uses wxChoice, so this was an easy solution. Anyways, to get this further - shall I

  • add an iPhone specific wxSegmentedButtons
  • re-implement wxNotebook using it
  • cast wxBookCtrl to wxNotebook instead of wxChoiceBook on iPhone
  • implement wxNavigationCtrl using native control on iPhone and cast to wxNotebook with bar at the bottom on other platforms


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/c3239370663@github.com>

RobertRoeb

unread,
Aug 30, 2025, 12:10:04 PM (8 days ago) Aug 30
to wx-...@googlegroups.com, Subscribed

@RobertRoeb commented on this pull request.


In configure.ac:

> @@ -425,6 +425,7 @@ WX_ARG_ONLY_WITH(directfb,      [  --with-directfb         use DirectFB], [wxUSE
 WX_ARG_ONLY_WITH(x11,           [  --with-x11              use X11], [wxUSE_X11="$withval" wxUSE_UNIVERSAL="yes" CACHE_X11=1 TOOLKIT_GIVEN=1])
 WX_ARG_ONLY_WITH(qt,            [  --with-qt               use Qt], [wxUSE_QT="$withval" CACHE_QT=1 TOOLKIT_GIVEN=1])
 WX_ARG_ENABLE(nanox,       [  --enable-nanox          use NanoX], wxUSE_NANOX)
+WX_ARG_ENABLE(iphonesimulator,  [  --enable-iphonesimulator   commpile for iPhone simulator], wxUSE_IPHONESIMULATOR)

I tried that but it failed in configure - I forgot in which step, possibly not recognising as cross-compilation, so this was the only way.


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/review/3171106611@github.com>

RobertRoeb

unread,
Aug 30, 2025, 12:10:31 PM (8 days ago) Aug 30
to wx-...@googlegroups.com, Subscribed

@RobertRoeb commented on this pull request.


In include/wx/osx/iphone/chkconf.h:

> @@ -58,11 +58,6 @@
 #define wxUSE_TOOLTIPS 0
 #endif
 
-#if wxUSE_DATAVIEWCTRL

Yes, wxDataViewCtrl works now.


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/review/3171106743@github.com>

RobertRoeb

unread,
Aug 30, 2025, 12:12:00 PM (8 days ago) Aug 30
to wx-...@googlegroups.com, Subscribed

@RobertRoeb commented on this pull request.


In include/wx/osx/iphone/private.h:

> @@ -38,7 +38,7 @@ wxBitmapBundle WXDLLIMPEXP_CORE wxOSXCreateSystemBitmapBundle(const wxString& id
 class WXDLLIMPEXP_CORE wxWidgetIPhoneImpl : public wxWidgetImpl
 {
 public :
-    wxWidgetIPhoneImpl( wxWindowMac* peer , WXWidget w, int flags = 0 ) ;
+    wxWidgetIPhoneImpl( wxWindowMac* peer , WXWidget w, int flags = 0, void *c = NULL  ) ;

Makes sense- will try to add this to the PR - never done that before.


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/review/3171107415@github.com>

RobertRoeb

unread,
Aug 30, 2025, 12:13:01 PM (8 days ago) Aug 30
to wx-...@googlegroups.com, Push

@RobertRoeb pushed 1 commit.

  • f1538c9 More explanatory name of parameter


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/before/1b23093619333ad47133b4ebcf64c5f56c0b0cf4/after/f1538c966560d2ab257a828bb0c300acc3dcebac@github.com>

RobertRoeb

unread,
Aug 30, 2025, 12:13:52 PM (8 days ago) Aug 30
to wx-...@googlegroups.com, Subscribed

@RobertRoeb commented on this pull request.


In include/wx/osx/iphone/private.h:

> @@ -124,8 +126,11 @@ public :
 
     virtual void        controlAction(void* sender, wxUint32 controlEvent, WX_UIEvent rawEvent);
     virtual void         controlTextDidChange();
+
+    void*               GetController() { return m_controller; }

Need to check if that is actually possible


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/review/3171108013@github.com>

RobertRoeb

unread,
Aug 30, 2025, 12:18:56 PM (8 days ago) Aug 30
to wx-...@googlegroups.com, Subscribed
RobertRoeb left a comment (wxWidgets/wxWidgets#25688)

It would be great to split this PR into independent


changes in order to discuss them separately

I am not sure I know how to do that and some of the changes depend on each other. Can I create a PR out of e.g. 2 commits?


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/c3239376778@github.com>

VZ

unread,
Aug 30, 2025, 1:18:12 PM (8 days ago) Aug 30
to wx-...@googlegroups.com, Subscribed
vadz left a comment (wxWidgets/wxWidgets#25688)

I am not sure I know how to do that and some of the changes depend on each other. Can I create a PR out of e.g. 2 commits?

Yes, typically you would create a branch (you should remain your current master to something else, like my-wip, because master should typically remain synchronized with the main repository master) and then use git cherry-pick to apply individual commits in this branch — and then push this branch to GitHub to create a PR for it.


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/c3239411772@github.com>

VZ

unread,
Aug 30, 2025, 1:22:16 PM (8 days ago) Aug 30
to wx-...@googlegroups.com, Subscribed
vadz left a comment (wxWidgets/wxWidgets#25688)

The current wxChoice uses the picker control

Sorry, I have no idea what is the picker control, so I can't comment on this, but my specific concern with this implementation of wxChoice is that this control is supposed to be good for reasonably many items, e.g. it could be used to select a US state in the address entry form, and you definitely couldn't use segmented buttons for this!

* add an iPhone specific wxSegmentedButtons

* re-implement wxNotebook using it

* cast wxBookCtrl to wxNotebook instead of wxChoiceBook on iPhone

* implement wxNavigationCtrl using native control on iPhone and cast to wxNotebook with bar at the bottom on other platforms

I am not sure, but from the application developer point of view I think just using wxNotebook normally would be the best.


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/c3239413734@github.com>

RobertRoeb

unread,
Sep 1, 2025, 9:09:12 AM (6 days ago) Sep 1
to wx-...@googlegroups.com, Subscribed
RobertRoeb left a comment (wxWidgets/wxWidgets#25688)

I am still learning git the hard way and I learnt that I need to move all my changes from master to a new branch. So I will do:
git branch iphone_updates
git checkout master
git reset --hard HEAD~24
git checkout iphone_updates
This will probably ruin this PR, but I will create new ones by cherry picking. I hope this will work....


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/c3242311881@github.com>

VZ

unread,
Sep 1, 2025, 9:22:43 AM (6 days ago) Sep 1
to wx-...@googlegroups.com, Subscribed
vadz left a comment (wxWidgets/wxWidgets#25688)

The above commands will preserve exactly the same changes as are here now in iphone_updates branch, so if this is what you want to do, they are indeed the right commands to use. Ideally, you'd do all of this except for the last command and do something like

$ git checkout -b iphone-change-1
$ git cherry-pick <some commits to go into this branch>

to create branches with more focused changes.

As for "ruining this PR": pushing your master to GitHub after these commands will indeed do it (I'm not sure if PR will get closed automatically, but in any way, it won't contain anything useful), but this is fine.

And just a small hint at the end: instead of hard-coding 24 (the number of commits) you may use @{u} where "u" stands for "upstream" and is a shorthand for HEAD@{u} or origin/master.


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/c3242363287@github.com>

RobertRoeb

unread,
Sep 1, 2025, 11:22:29 AM (6 days ago) Sep 1
to wx-...@googlegroups.com, Push

@RobertRoeb pushed 0 commits.


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/before/f1538c966560d2ab257a828bb0c300acc3dcebac/after/510c5d1e084375cafcb9c47c5162074f21b3db1e@github.com>

RobertRoeb

unread,
Sep 1, 2025, 11:22:30 AM (6 days ago) Sep 1
to wx-...@googlegroups.com, Subscribed

Closed #25688.


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25688/issue_event/19444579388@github.com>

Reply all
Reply to author
Forward
0 new messages