Discussion:
Porting Scintilla
Nick Andrews
2013-11-06 22:55:53 UTC
Permalink
Hi,

I am interested in porting Scintilla to the AROS (www.aros.org) operating system, but am struggling to get to grasps with some details and was wondering if anyone would be able to help?

Firstly, to use it on AROS I am trying to encapsulate the scintilla code as an "MUI" (Magic User Interface - AmigaOS GUI Toolkit) Custom Class, written in plain "C". I have the scintilla base code + my platform support "stubs" linked to this - but am unsure how I should be instantiating scintilla/its classes. I have tried to understand the gtk/win etc codes but their GUI toolkits are too alien to me to be able to make head nor tale of them.

So far I have tried creating my ScintillaAROS object, which does seem to make some things happen from my limited debug - but I don't see anything that suggests it is trying to render, nor how to get it to?


I would really appreciate any help/info/pointers in getting this to work.

FWIW - The only debug/output I see (from my own stubs) is the following -:

[Scintilla-MUI] Scintilla_Initialise: LIBBASE @ 0x02c41470
[Scintilla-MUI] Scintilla__OM_NEW: self @ 0x02d90630 [data @ 0x02d90728]
[Scintilla-Core] Font::Font()
[Scintilla-Core] Platform::DefaultFontSize()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::~Font()
[Scintilla-Core] Platform::DefaultFont()
[Scintilla-Core] Platform::DefaultFontSize()
[Scintilla-Core] Platform::Chrome()
[Scintilla-Core] Platform::ChromeHighlight()
[Scintilla-Core] Platform::Chrome()
[Scintilla-Core] Menu::Menu()
[Scintilla-Core] ListBox::Allocate()
[Scintilla-Core] ListBox::ListBox()
[Scintilla-Core] ListBoxImpl::ListBoxImpl()
[Scintilla-Core] Font::Font()
[Scintilla-Core] ScintillaAROS::ScintillaAROS(0x02d90630)
[Scintilla-Core] ScintillaAROS::Initialise()
[Scintilla-Core] ScintillaAROS::SetTicking()
[Scintilla-MUI] Scintilla__OM_NEW: ScintillaObj @ 0x02d7f634

.. and If I send some commands

DoMethod(self, MUIM_Scintilla_SciMsg, SCI_STYLECLEARALL, 0, 0);
DoMethod(self, MUIM_Scintilla_SciMsg, SCI_SETLEXER, SCLEX_CPP, 0);
DoMethod(self, MUIM_Scintilla_SciMsg, SCI_SETKEYWORDS, 0, (IPTR)"Scintilla AROS");
DoMethod(self, MUIM_Scintilla_SciMsg, SCI_STYLESETFORE, SCE_C_COMMENT, 0x008000);
DoMethod(self, MUIM_Scintilla_SciMsg, SCI_STYLESETFORE, SCE_C_COMMENTLINE, 0x008000);
DoMethod(self, MUIM_Scintilla_SciMsg, SCI_STYLESETFORE, SCE_C_NUMBER, 0x808000);
DoMethod(self, MUIM_Scintilla_SciMsg, SCI_STYLESETFORE, SCE_C_WORD, 0x800000);
DoMethod(self, MUIM_Scintilla_SciMsg, SCI_STYLESETFORE, SCE_C_STRING, 0x800080);
DoMethod(self, MUIM_Scintilla_SciMsg, SCI_STYLESETBOLD, SCE_C_OPERATOR, 1);
DoMethod(self, MUIM_Scintilla_SciMsg, SCI_INSERTTEXT, 0, (IPTR)
"Hello!\n"
"from\n"
"Scintilla on AROS!\n}"
);


I get ...

[Scintilla-MUI]: Scintilla__MUIM_Scintilla_SciMsg(0802, 00000000, 00000000)
[Scintilla-Core] ScintillaAROS::WndProc()
[Scintilla-Core] Platform::Chrome()
[Scintilla-Core] Surface::Allocate()
[Scintilla-Core] SurfaceImpl::SurfaceImpl()
[Scintilla-Core] Surface::Allocate()
[Scintilla-Core] SurfaceImpl::SurfaceImpl()
[Scintilla-Core] Surface::Allocate()
[Scintilla-Core] SurfaceImpl::SurfaceImpl()
[Scintilla-Core] Surface::Allocate()
[Scintilla-Core] SurfaceImpl::SurfaceImpl()
[Scintilla-Core] Surface::Allocate()
[Scintilla-Core] SurfaceImpl::SurfaceImpl()
[Scintilla-Core] Surface::Allocate()
[Scintilla-Core] SurfaceImpl::SurfaceImpl()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] Window::InvalidateRectangle()
[Scintilla-MUI]: Scintilla__MUIM_Scintilla_SciMsg(0fa1, 00000003, 00000000)
[Scintilla-Core] ScintillaAROS::WndProc()
[Scintilla-Core] ScintillaAROS::DefWndProc()
[Scintilla-MUI]: Scintilla__MUIM_Scintilla_SciMsg(0fa5, 00000000, 02fd1489)
[Scintilla-Core] ScintillaAROS::WndProc()
[Scintilla-Core] ScintillaAROS::DefWndProc()
[Scintilla-MUI]: Scintilla__MUIM_Scintilla_SciMsg(0803, 00000001, 00008000)
[Scintilla-Core] ScintillaAROS::WndProc()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] Window::InvalidateRectangle()
[Scintilla-MUI]: Scintilla__MUIM_Scintilla_SciMsg(0803, 00000002, 00008000)
[Scintilla-Core] ScintillaAROS::WndProc()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] Window::InvalidateRectangle()
[Scintilla-MUI]: Scintilla__MUIM_Scintilla_SciMsg(0803, 00000004, 00808000)
[Scintilla-Core] ScintillaAROS::WndProc()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] Window::InvalidateRectangle()
[Scintilla-MUI]: Scintilla__MUIM_Scintilla_SciMsg(0803, 00000005, 00800000)
[Scintilla-Core] ScintillaAROS::WndProc()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] Window::InvalidateRectangle()
[Scintilla-MUI]: Scintilla__MUIM_Scintilla_SciMsg(0803, 00000006, 00800080)
[Scintilla-Core] ScintillaAROS::WndProc()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] Window::InvalidateRectangle()
[Scintilla-MUI]: Scintilla__MUIM_Scintilla_SciMsg(0805, 0000000a, 00000001)
[Scintilla-Core] ScintillaAROS::WndProc()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] Window::InvalidateRectangle()
[Scintilla-MUI]: Scintilla__MUIM_Scintilla_SciMsg(07d3, 00000000, 02fd6fdc)
[Scintilla-Core] ScintillaAROS::WndProc()
[Scintilla-Core] ScintillaAROS::NotifyChange()
[Scintilla-Core] ScintillaAROS::NotifyParent()
[Scintilla-Core] ScintillaAROS::NotifyParent()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] ScintillaAROS::ModifyScrollBars()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] Window::InvalidateRectangle()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] ScintillaAROS::ModifyScrollBars()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] ScintillaAROS::NotifyChange()
[Scintilla-Core] ScintillaAROS::NotifyParent()
[Scintilla-Core] ScintillaAROS::ClaimSelection()
--
You received this message because you are subscribed to the Google Groups "scintilla-interest" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scintilla-interest+***@googlegroups.com.
To post to this group, send email to scintilla-***@googlegroups.com.
Visit this group at http://groups.google.com/group/scintilla-interest.
For more options, visit https://groups.google.com/groups/opt_out.
Griffin, Brian
2013-11-06 23:17:53 UTC
Permalink
Hi Nick,

You might take a look at ScintillaTk which is a Scintilla port to the Tk C API. If tcl/tk has been ported to AROS, then it might just work as is. Otherwise, that port might give you pointers about how to port to your C based GUI toolkit.

You can find ScintillaTk at Sourceforge.net<http://Sourceforge.net>

-Brian

On Nov 6, 2013, at 2:55 PM, Nick Andrews <***@gmail.com<mailto:***@gmail.com>> wrote:

Hi,

I am interested in porting Scintilla to the AROS (www.aros.org<http://www.aros.org>) operating system, but am struggling to get to grasps with some details and was wondering if anyone would be able to help?

Firstly, to use it on AROS I am trying to encapsulate the scintilla code as an "MUI" (Magic User Interface - AmigaOS GUI Toolkit) Custom Class, written in plain "C". I have the scintilla base code + my platform support "stubs" linked to this - but am unsure how I should be instantiating scintilla/its classes. I have tried to understand the gtk/win etc codes but their GUI toolkits are too alien to me to be able to make head nor tale of them.

So far I have tried creating my ScintillaAROS object, which does seem to make some things happen from my limited debug - but I don't see anything that suggests it is trying to render, nor how to get it to?


I would really appreciate any help/info/pointers in getting this to work.

FWIW - The only debug/output I see (from my own stubs) is the following -:

[Scintilla-MUI] Scintilla_Initialise: LIBBASE @ 0x02c41470
[Scintilla-MUI] Scintilla__OM_NEW: self @ 0x02d90630 [data @ 0x02d90728]
[Scintilla-Core] Font::Font()
[Scintilla-Core] Platform::DefaultFontSize()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::Font()
[Scintilla-Core] Font::~Font()
[Scintilla-Core] Platform::DefaultFont()
[Scintilla-Core] Platform::DefaultFontSize()
[Scintilla-Core] Platform::Chrome()
[Scintilla-Core] Platform::ChromeHighlight()
[Scintilla-Core] Platform::Chrome()
[Scintilla-Core] Menu::Menu()
[Scintilla-Core] ListBox::Allocate()
[Scintilla-Core] ListBox::ListBox()
[Scintilla-Core] ListBoxImpl::ListBoxImpl()
[Scintilla-Core] Font::Font()
[Scintilla-Core] ScintillaAROS::ScintillaAROS(0x02d90630)
[Scintilla-Core] ScintillaAROS::Initialise()
[Scintilla-Core] ScintillaAROS::SetTicking()
[Scintilla-MUI] Scintilla__OM_NEW: ScintillaObj @ 0x02d7f634

.. and If I send some commands

DoMethod(self, MUIM_Scintilla_SciMsg, SCI_STYLECLEARALL, 0, 0);
DoMethod(self, MUIM_Scintilla_SciMsg, SCI_SETLEXER, SCLEX_CPP, 0);
DoMethod(self, MUIM_Scintilla_SciMsg, SCI_SETKEYWORDS, 0, (IPTR)"Scintilla AROS");
DoMethod(self, MUIM_Scintilla_SciMsg, SCI_STYLESETFORE, SCE_C_COMMENT, 0x008000);
DoMethod(self, MUIM_Scintilla_SciMsg, SCI_STYLESETFORE, SCE_C_COMMENTLINE, 0x008000);
DoMethod(self, MUIM_Scintilla_SciMsg, SCI_STYLESETFORE, SCE_C_NUMBER, 0x808000);
DoMethod(self, MUIM_Scintilla_SciMsg, SCI_STYLESETFORE, SCE_C_WORD, 0x800000);
DoMethod(self, MUIM_Scintilla_SciMsg, SCI_STYLESETFORE, SCE_C_STRING, 0x800080);
DoMethod(self, MUIM_Scintilla_SciMsg, SCI_STYLESETBOLD, SCE_C_OPERATOR, 1);
DoMethod(self, MUIM_Scintilla_SciMsg, SCI_INSERTTEXT, 0, (IPTR)
"Hello!\n"
"from\n"
"Scintilla on AROS!\n}"
);


I get ...

[Scintilla-MUI]: Scintilla__MUIM_Scintilla_SciMsg(0802, 00000000, 00000000)
[Scintilla-Core] ScintillaAROS::WndProc()
[Scintilla-Core] Platform::Chrome()
[Scintilla-Core] Surface::Allocate()
[Scintilla-Core] SurfaceImpl::SurfaceImpl()
[Scintilla-Core] Surface::Allocate()
[Scintilla-Core] SurfaceImpl::SurfaceImpl()
[Scintilla-Core] Surface::Allocate()
[Scintilla-Core] SurfaceImpl::SurfaceImpl()
[Scintilla-Core] Surface::Allocate()
[Scintilla-Core] SurfaceImpl::SurfaceImpl()
[Scintilla-Core] Surface::Allocate()
[Scintilla-Core] SurfaceImpl::SurfaceImpl()
[Scintilla-Core] Surface::Allocate()
[Scintilla-Core] SurfaceImpl::SurfaceImpl()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] Window::InvalidateRectangle()
[Scintilla-MUI]: Scintilla__MUIM_Scintilla_SciMsg(0fa1, 00000003, 00000000)
[Scintilla-Core] ScintillaAROS::WndProc()
[Scintilla-Core] ScintillaAROS::DefWndProc()
[Scintilla-MUI]: Scintilla__MUIM_Scintilla_SciMsg(0fa5, 00000000, 02fd1489)
[Scintilla-Core] ScintillaAROS::WndProc()
[Scintilla-Core] ScintillaAROS::DefWndProc()
[Scintilla-MUI]: Scintilla__MUIM_Scintilla_SciMsg(0803, 00000001, 00008000)
[Scintilla-Core] ScintillaAROS::WndProc()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] Window::InvalidateRectangle()
[Scintilla-MUI]: Scintilla__MUIM_Scintilla_SciMsg(0803, 00000002, 00008000)
[Scintilla-Core] ScintillaAROS::WndProc()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] Window::InvalidateRectangle()
[Scintilla-MUI]: Scintilla__MUIM_Scintilla_SciMsg(0803, 00000004, 00808000)
[Scintilla-Core] ScintillaAROS::WndProc()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] Window::InvalidateRectangle()
[Scintilla-MUI]: Scintilla__MUIM_Scintilla_SciMsg(0803, 00000005, 00800000)
[Scintilla-Core] ScintillaAROS::WndProc()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] Window::InvalidateRectangle()
[Scintilla-MUI]: Scintilla__MUIM_Scintilla_SciMsg(0803, 00000006, 00800080)
[Scintilla-Core] ScintillaAROS::WndProc()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] Window::InvalidateRectangle()
[Scintilla-MUI]: Scintilla__MUIM_Scintilla_SciMsg(0805, 0000000a, 00000001)
[Scintilla-Core] ScintillaAROS::WndProc()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] SurfaceImpl::Release()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] Window::InvalidateRectangle()
[Scintilla-MUI]: Scintilla__MUIM_Scintilla_SciMsg(07d3, 00000000, 02fd6fdc)
[Scintilla-Core] ScintillaAROS::WndProc()
[Scintilla-Core] ScintillaAROS::NotifyChange()
[Scintilla-Core] ScintillaAROS::NotifyParent()
[Scintilla-Core] ScintillaAROS::NotifyParent()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] ScintillaAROS::ModifyScrollBars()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] Window::InvalidateRectangle()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] ScintillaAROS::ModifyScrollBars()
[Scintilla-Core] Window::GetClientPosition()
[Scintilla-Core] ScintillaAROS::NotifyChange()
[Scintilla-Core] ScintillaAROS::NotifyParent()
[Scintilla-Core] ScintillaAROS::ClaimSelection()

--
You received this message because you are subscribed to the Google Groups "scintilla-interest" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scintilla-interest+***@googlegroups.com<mailto:scintilla-interest+***@googlegroups.com>.
To post to this group, send email to scintilla-***@googlegroups.com<mailto:scintilla-***@googlegroups.com>.
Visit this group at http://groups.google.com/group/scintilla-interest.
For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to the Google Groups "scintilla-interest" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scintilla-interest+***@googlegroups.com.
To post to this group, send email to scintilla-***@googlegroups.com.
Visit this group at http://groups.google.com/group/scintilla-interest.
For more options, visit https://groups.google.com/groups/opt_out.
Neil Hodgson
2013-11-07 06:10:43 UTC
Permalink
Post by Nick Andrews
Firstly, to use it on AROS I am trying to encapsulate the scintilla code as an "MUI" (Magic User Interface - AmigaOS GUI Toolkit) Custom Class, written in plain "C". I have the scintilla base code + my platform support "stubs" linked to this - but am unsure how I should be instantiating scintilla/its classes. I have tried to understand the gtk/win etc codes but their GUI toolkits are too alien to me to be able to make head nor tale of them.
The main thing to hook up is your platform's paint event. To start, look at something like ScintillaWin::WndPaint. Its a bit too complicated, but the main thing it is doing (just below the line that contains "SC_TECHNOLOGY_DEFAULT") is to to create a Scintilla surface to wrap your platform's drawing context and ask the Editor superclass to draw into this context. Initially, you should avoid the call to the superclass, instead just make the surface allocation work and implement some simple calls on your Surface subclass, like drawing a rectangle or line. Then, in your paint handler, draw some rectangles or lines into the area. Gradually implement more of the Surface methods so that you can draw and measure text, then with multiple fonts. Once these are working try calling Editor::Paint and see what happens.

Neil
--
You received this message because you are subscribed to the Google Groups "scintilla-interest" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scintilla-interest+***@googlegroups.com.
To post to this group, send email to scintilla-***@googlegroups.com.
Visit this group at http://groups.google.com/group/scintilla-interest.
For more options, visit https://groups.google.com/groups/opt_out.
Loading...