Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
176 lines (140 sloc) 7.65 KB
################ the last time working on ################
- AUTOLOAD (Element)
##########################################################
UTF8
#ifdef sv_utf8_decode
sv_utf8_decode(sv);
#else
SvUTF8_on(sv);
#endif
######## POD/IMPORTANT:
- finish pod for IUP::Canvas::(Palette|Pattern|Stipple|Bitmap)
- finish pod for IUP::Manual::* (CB/AT accessors)
- overall "doc polish" needed
######## CODE/IMPORTANT: correct element destruction still needs some work
- Internal/Element.pm (look for XXX-FIXME + XXX-CHECKLATER)
######## TESTS/IMPORTANT: add more tests
- split tests: t\*.t + all GUI-related >>> t\gui\*.t
- maybe close after timeout (IUP::Timer -> return IUP_CLOSE)
- how to skip - example:
plan skip_all => "\$ENV{RELEASE_TESTING} required fot testing", unless $ENV{RELEASE_TESTING};
eval "use Win32::Job ()";
plan skip_all => "Can't interrupt hung processes without Win32::Job" if $@;
######## POD/COSMETICS: mention in POD/DOC
- mention IUP::Manual::10_FAQ::PARPacking recommendation in DOC
- beware: (IUP_DEFAULT related) sub returns value even without explicit return
- pplot: note in doc that DS_ has to be set after ->PPlotEnd()
- tree: note in doc that tree->SetAttribute has to go after dialog->Show
######## MAYBE: access child=>[...] items like this
$mybox = IUP::Hbox->new( child=>[ $bt1, $bt2, $bt3] );
$mybox->[0]->FGCOLOR("255 0 0"); # changes bt1 foreground color
$mybox->[1]->FGCOLOR("255 0 255"); # changes bt2 foreground color
- beware: somehow handle AddChild & co.
- from perl doc:
$a = $array[5]; $obj->FETCH(5);
$array[5] = "aa" $obj->STORE(5, "aa");
- see implementation of SDLx::Surface + SDLx::Surface::TiedMatrix
http://cpansearch.perl.org/src/KTHAKORE/SDL-2.533/lib/SDLx/Surface.pm
http://cpansearch.perl.org/src/KTHAKORE/SDL-2.533/lib/SDLx/Surface/TiedMatrix.pm
### COSMETICS ################################################################################################
(cosmetics)######## NICE-TO-HAVE: cdKillCanvas
- see examples/2-canvas/simpledraw.pl
- why we need 'undef $canvas' and '$canvas->cdKillCanvas()' is not enough?
(cosmetics)######## NICE-TO-HAVE: more Canvas examples
- port more lua examples into perl
(cosmetics)######## IDEA:
use IUP qw/:basic iup_NO_INIT/; #generally iup_ANY_OTHER_FLAG
(cosmetics)######## IUP::Canvas missing functions (not crutial for now)
- void wdCanvasHardcopy(cdCanvas* canvas, cdContext* ctx, void *data, void(*draw_func)(cdCanvas *canvas_copy));
- int cdContextRegisterCallback(cdContext *context, int cb, cdCallback func);
- void cdInitContextPlus(void); /* needs: GDI+, Cairo, XRender */
(cosmetics)######## GTK too noisy when no DISPLAY: asck scuri
- GTK + no DISPLAY set - error during gtk_init_check (= during 'use IUP'):
(<unknown>:7541): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
IUP->Open == -1
[http://developer.gnome.org/doc/API/2.2/gtk/gtk-General.html]
bool XDisplayExists() {
return (gdk_display_get_default() != NULL);
}
++ if (!gdk_display_get_default ()) {
++ if (!gtk_init_check (NULL, NULL)) {
++ /* Oh well, no X for you! */
++ g_printerr (_("Unable to connect to the X server"));
++ g_printerr ("%s", message);
++ exit (1);
++ }
++ }
++
- GTK/NOT-WORKING-DISPLAY
The application '<unknown>' lost its connection to the display localhost:10.0;
most likely the X server was shut down or you killed/destroyed
the application.
(cosmetics)######## global
- icon - see y:\IUP3.3\fltk\FLTK-0.532007\inc\MBX\FLTK.pm (ACTION_code)
(cosmetics)######## Check this:
- consider return; vs. return undef;
return IUP::Internal::LibraryIup::_voidfunc; == return;
return IUP::Internal::LibraryIup::_nonvoidfunc; == return undef;
SUGGESTION: always call: return IUP::Internal::LibraryIup::_func; (even for void functions)
- http://stackoverflow.com/questions/3435122/whats-the-difference-between-return-and-return-undef-in-perl
- "Perl Best Practices" (and Perl::Critic) suggest not using return undef
(cosmetics)######## IUP (main module)
- ??? better detection of initialized gui than (IUP->Open == IUP_OPENED)?
- ??? detection of codepage used in GUI
(cosmetics)######## IUP::Submenu
- consider using $firstonly param of new()
(cosmetics)######## IUP::ProgressBar
- FGCOLOR seems to be ignored
(cosmetics)######## IUP::Split
- maybe support also new($child1, $child2) instead of new(child1=>$child1, child2=>$child2)
(cosmetics)######## IUP::Internal::Element
- change: _create_element should set $self->ihandle value
### NOT NOW, MAYBE LATER ################################################################################################
(not now, maybe later)!!Big Task!! ######## IUP::OLE (extra module)
- $o->IUNKNOWN ... pointer created by CoCreateInstance Function http://msdn.microsoft.com/en-us/library/ms686615%28v=vs.85%29.aspx
- perahps integrate with Win32::OLE like $o->ole->methodname(...)
- Win32::OLE needs something like new_from_iunknown
IUnknown *punk = ... value from $olecontrol->IUNKNOWN;
HRESULT hr;
IDispatch *pDispatch = NULL;
hr = punk->QueryInterface(IID_IDispatch, (void**)&pDispatch);
punk->Release();
ST(0) = CreatePerlObject(aTHX_ stash, pDispatch, destroy);
- see Wx+OLE/ActiveX integration http://search.cpan.org/~mdootson/Wx-ActiveX-0.15/lib/Wx/ActiveX.pm
- missing example: notepad.wlua? olecontrol_browser.wlua?
- missing -> add
- conditionally only on Win32
- we probably need IUP::ConfigData for listing available features (iupole, iupgl ...)
(not now, maybe later)######## implement threads demo
- threads+Wx - http://use.perl.org/~Alias/journal/40377
(not now, maybe later)######## memory issues
- moustly should be handled, some corner cases may occur
- see http://stackoverflow.com/questions/2223721/common-perl-memory-reference-leak-patterns
- somehow check memory leaks - http://use.perl.org/~jozef/journal/40411
- somehow check memory consumption - Devel::Size, Devel::Peak, PerlBench
- http://stackoverflow.com/questions/1359771/perl-memory-usage-profiling-and-leak-detection
- http://www252.pair.com/comdog/mastering_perl/Chapters/06.benchmarking.html
- check memleaks by storing SetAttribute("ATTR", $ref)
(not now, maybe later)######## unicode in filenames (cpodepage magic)
http://www.i-programmer.info/programming/other-languages/1973-unicode-issues-in-perl.html
(not now, maybe later)######## missing examples
- no example for: Clipboard.pm ?
- no example for: User.pm ?
- no example for: ColorDlg.pm ?
- no example for: FontDlg.pm ?
(not now, maybe later)######## Linux - platform specific issues
- GTK: 'Quit' in main menu requires double click
### REJECTED FOR NOW ################################################################################################
(rejected)#######IUP
- consider adding iupKeyCodeToName
- consider adding iupKeyNameToCode
- Idle? #xxxsomething causes progressbar3.pl to hangup/crash (after pressing accel/decel) - cannot reproduce
- is GetIhClassName() func name OK - yes for now
- IUP->GetIdle? or IUP->CheckIdle? #xxx how to check existing idle handler? - not for now
(rejected)#######IUP::Internal::Element
- passing undef to child=> ... - maybe later
Can't call method "ihandle" on an undefined value at
Y:\@repos\perl-iup\blib\lib/IUP/Internal/Element.pm line 574. (better error message)
- consider checking arg count SetAttributeId($$$) SetAttributeId2($$$$) - not now
(rejected)#######IUP::List
- IUP::List->new() items 0-based or 1-based index? (item[0] >> attribute 1)