1. Greg Haberek - xControls
- Posted by Jonas Temple <jtemple at yhti.net> Dec 06, 2005
- 759 views
Greg, So..how ya' doin? Great. You been working out? Okay. And how's the family? Good. Shuffle... Squirm.... So...I know you're busy and all...(wring hands)...and probably have a lot to do right now...(cough nervously)...but...have you had a chance to check into the problem I reported with xControls? (ducks to avoid thrown object) This is the issue where I had sent you the source for a window design that contained a vertical splitter with multiple horizontal splitters. :) Jonas Temple http://www.yhti.net/~jktemple
2. Re: Greg Haberek - xControls
- Posted by Greg Haberek <ghaberek at gmail.com> Dec 08, 2005
- 746 views
> So...I know you're busy and all...(wring hands)...and probably have a lot= to do right now...(cough nervously)...but...have you had a chance to check= into the problem I reported with xControls? (ducks to avoid thrown object= ) > > This is the issue where I had sent you the source for a window design tha= t contained a vertical splitter with multiple horizontal splitters. Um.... (taps finger on desk)... I, uh.... looked? at it. Been working a lot. Um.... heck, I might as well drop some time into writing xControls v2.0. I just finished Geometry, which uses convPctToPixel() in Win32Lib, and I'm starting on VSplitter and HSplitter. They should be done by the weekend, I've ripped out a lot of unneeded code. I'll e-mail you the updated libraries for testing in private. Although I really don't see how this issue is related to the existing Geometry in anyway, but it has to be. That's why I switched to convPctToPixel(), maybe it will help the issue. ~Greg P.S. I'm getting laid off December 16th. So I'm looking forward to a lot of long nights coding away to my heart's content. A full release of xControls v2.0 is in the works, as are a few other apps, namely Royal Chess and GIF Animator. :)
3. Re: Greg Haberek - xControls
- Posted by Jonas Temple <jtemple at yhti.net> Dec 08, 2005
- 718 views
Greg Haberek wrote: > Um.... (taps finger on desk)... I, uh.... looked? at it. Been working > a lot. Um.... heck, I might as well drop some time into writing > xControls v2.0. I just finished Geometry, which uses convPctToPixel() > in Win32Lib, and I'm starting on VSplitter and HSplitter. They should > be done by the weekend, I've ripped out a lot of unneeded code. I'll > e-mail you the updated libraries for testing in private. Thanks! > > Although I really don't see how this issue is related to the existing > Geometry in anyway, but it has to be. That's why I switched to > convPctToPixel(), maybe it will help the issue. I "tried" to look at the code in geometry and the splitters but couldn't get my head around it. > > P.S. I'm getting laid off December 16th. So I'm looking forward to a > lot of long nights coding away to my heart's content. A full release > of xControls v2.0 is in the works, as are a few other apps, namely > Royal Chess and GIF Animator. :) Wow...Merry Christmas, huh? Any prospects for new employment? Jonas Temple http://www.yhti.net/~jktemple
4. Re: Greg Haberek - xControls
- Posted by Greg Haberek <ghaberek at gmail.com> Dec 08, 2005
- 773 views
- Last edited Dec 09, 2005
> Wow...Merry Christmas, huh? Any prospects for new employment? I guess I forgot to say that everything starts back up sometime after the first of the year. :) So I just get two weeks of unemployment pay.
5. Re: Greg Haberek - xControls
- Posted by Greg Haberek <ghaberek at gmail.com> Dec 09, 2005
- 730 views
Well now I'm starting to think the issues is just how I'm handling TabControls and TabItems. I tried monitoring the TabItem's Resize event. That didn't work at all. TabItems don't get Resize events, TabControls do. So I tried monitoring the TabControl's Resize event. That leads to the issue we have now. I'm not sure why this happens exactly. I believe the Tab-to-Tab switching doesn't fire off a resize event. What I think I need to do, is monitor the TabControl's Resize event and the Tab-to-Tab Change (or Click) event, then send it a TCM_GETCURSEL message to get the current tab and convert it back to Win32Lib with getId(). From there, I'll only resize the controls on *that* tab. I'm just thinking through the keyboard here while I'm at work. Let's hope my theory holds true. ~Greg
6. Greg Haberek - xControls
- Posted by Jonas Temple <jtemple at yhti.net> Nov 11, 2004
- 716 views
Greg, Earlier this month I sent out a message directed to Don Phillips about a problem I was having with xControls and vertical splitters overlapping the status bar. Don appears to be MIA at the moment and since you said you were semi-maintaining xControls I thought I would share this fix. I've got my copy of xControls doing what I "think" it should be doing by appling the following patch into the GM_Manager routine in Geometry.ew:
for index = 1 to length(IDsManaged[parentID]) do attribs = IDsManaged[parentID][index] for index2 = 1 to 4 do if attribs[index2+1][1] <= 1 then newPos[index2] = floor( params[and_bits(or_bits(xor_bits(index2,1),2),3)] * attribs[index2+1][1] ) else newPos[index2] = PrevPlaced[ attribs[index2+1][1] ][ index2+2-(index2>2)*4 ] end if newPos[index2] += attribs[index2+1][2] PrevPlaced[ attribs[1] ][index2] = newPos[index2] end for newPos[5] = newPos[3] - newPos[1] newPos[6] = newPos[4] - newPos[2] -- Beg CJT01 if newPos[6] > Rect[4] then newPos[6] = Rect[4] - 5 end if -- End CJT01 setRect( attribs[1], newPos[1]+Offset[1], newPos[2]+Offset[2], newPos[5], newPos[6], True ) classType = getControlInfo( attribs[1], {CONTROLINFO_class} ) if classType[1] = 2 then -- 2 = COMBO Void = sendMessage( attribs[1], CB_SETDROPPEDWIDTH, newPos[5], 0 ) else end if end for
I've been testing this for a few days and it seems to work. Probably not the best approach to correct the problem, but hey, it works. Jonas Temple http://www.yhti.net/~jktemple
7. Re: Greg Haberek - xControls
- Posted by Don <eunexus at yahoo.com> Nov 15, 2004
- 697 views
> Earlier this month I sent out a message directed to Don Phillips about a > problem I was having with xControls and vertical splitters overlapping > the status bar. Don appears to be MIA at the moment and since you said > you were semi-maintaining xControls I thought I would share this fix. > > I've got my copy of xControls doing what I "think" it should be doing > by appling the following patch into the GM_Manager routine in Geometry.ew: Heys Jonas... Yeah I dont check up on Euphoria much anymore. I still find it interesting and I might poke around with it more during the 2.5 update, but I moved on more than a year or so ago. Every once in a blue moon I will get on to see what people are talking about/ discussing. But the chances of me catching an xControls issue posted to the board is slim. Better to email me directly. The other part of the problem is that I do not have an older machine to test your code on. If you say it works and it does not break anything I say go with it. I am not likely to update the xControls lib anymore so Gregs the best person to send it to... Have to say, I am really digging CSS... Really cool stuff going on lately. Just wish IE would get its head out of its backside and get fully compliant... Don Phillips - aka Graebel National Instruments mailto: eunexus @ yahoo.com
8. Re: Greg Haberek - xControls
- Posted by "Greg Haberek" <ghaberek at gmail.com> Jan 02, 2007
- 714 views
- Last edited Jan 03, 2007
> > I'm currently working on a major Euphoria-driven project for financial > > gain, so it's been taking up all of my free coding time. :) > > ooh, a few details? nothing that would violate a non-disclosure, of course... Its a huge endeavor. At its root, its an on-line multi-player membership-based gaming environment. I've got to write all types of game rules, front-end application(s), a large-scale game server, a database server, and tie it all into a working product.
9. Greg Haberek - xControls
- Posted by Jonas Temple <jtemple at yhti.net> Dec 29, 2006
- 731 views
Greg, I've got a couple of things with xControls that I want to run by you. The first is I'm trying to build a tab-control-within-a-tab-control feature into my application and using xControls I'm getting considerable flickering from the nested tab. The following example should show you what I mean:
include Win32lib.ew include xControls.ew atom sys_cx, sys_cy global constant MainWin = createEx( Window, "Multi-Tab Test", 0, 0, 0, 500, 800, 0, 0) global constant Main = createEx( Window, "", MainWin, 0, 0, 0, 0, {WS_CHILD,WS_VISIBLE}, 0 ) -- Create the left portion of the main window global constant MainTV = createEx( TreeView, "", Main, 0, 0, 0, 0, or_all({TVS_HASLINES,TVS_LINESATROOT,TVS_HASBUTTONS,TVS_SHOWSELALWAYS,TVS_INFOTIP}), 0 ) removeStyle(MainTV, WS_BORDER) -- Split the left/right sides of the main window global constant mainSplit = createEx(VSplitter, "mainSplit", Main, 100, 0, 0, 0, 0, 0 ) -- Create the right portion of the main window global constant mainRightTC = createEx(TabControl, "", Main, 0, 0, 0, 0, 0, 0 ) -- Create the DB2 tab item on the right global constant DB2TI = createEx(TabItem, "DB2", mainRightTC, 0, 0, 0, 0, 0, 0 ) global constant DB2TIWin = createEx( Window, "", DB2TI, 0, 0, 0, 0, {WS_CHILD,WS_VISIBLE}, 0 ) -- Now create three sub windows of the DB2 tab item. Start with the top window and details list view global constant DB2DtlWin = createEx( Window, "", DB2TIWin, 0, 0, 0, 0, {WS_CHILD,WS_VISIBLE}, 0 ) global constant QuickLibLT = createEx( LText, "Library:", DB2DtlWin, 0, 0, 0, 0, 0, 0 ) global constant QuickLibET = createEx( EditText, "", DB2DtlWin, 0, 0, 0, 0, 0, 0 ) LimitText( QuickLibET,10) global constant QuickFileLT = createEx( LText, "File:", DB2DtlWin, 0, 0, 0, 0, 0, 0 ) global constant QuickFileET = createEx( EditText, "", DB2DtlWin, 0, 0, 0, 0, 0, 0 ) LimitText( QuickFileET,10) global constant QuickGoPB = createEx( PushButton, "List Fields", DB2DtlWin, 0, 0, 0, 0, 0, 0 ) global constant QuickDBRPB = createEx( PushButton, "DB Relations", DB2DtlWin, 0, 0, 0, 0, 0, 0 ) global constant QuickDBPropsPB = createEx( PushButton, "Properties", DB2DtlWin, 0, 0, 0, 0, 0, 0 ) global constant MainLV = createEx( ListView, {}, DB2DtlWin, 0, 0, 0, 0, or_all({LVS_REPORT,LVS_SHOWSELALWAYS}), 0 ) removeStyle(MainLV, WS_BORDER) -- First horizontal splitter global constant DB2Split1 = createEx(HSplitter, "DB2Split", DB2TIWin, 0, 100, 0, 0, 0, 0 ) -- History DDL and statement edit control global constant DB2SQLWin = createEx( Window, "", DB2TIWin, 0, 0, 0, 0, {WS_CHILD,WS_VISIBLE}, 0 ) global constant HistoryDDL = createEx( DropDownList, "", DB2SQLWin, 0, 0, 0, 0, 0, 0 ) removeStyle(HistoryDDL, WS_BORDER) global constant StatementRE = createEx( RichEdit, "", DB2SQLWin, 0, 0, 0, 0, w32or_all({ES_NOHIDESEL}), 0 ) removeStyle(StatementRE, WS_BORDER) -- Second horizontal splitter global constant DB2Split2 = createEx(HSplitter, "DB2TopSplit", DB2TIWin, 0, 200, 0, 0, 0, 0 ) -- Create the results list view global constant DB2ResultsWin = createEx( Window, "", DB2TIWin, 0, 0, 0, 0, {WS_CHILD,WS_VISIBLE}, 0 ) global constant ResultsLV = createEx( ListView, {}, DB2ResultsWin, 0, 0, 0, 0, or_all({LVS_REPORT,LVS_SHOWSELALWAYS}), 0 ) removeStyle(ResultsLV, WS_BORDER) -- Create the command tab item global constant CmdTI = createEx(TabItem, "CL Commands", mainRightTC, 0, 0, 0, 0, 0, 0 ) global constant CmdTIWin = createEx( Window, "", CmdTI, 0, 0, 0, 0, {WS_CHILD,WS_VISIBLE}, 0 ) global constant CmdHistoryDDL = createEx( DropDownList, "", CmdTIWin, 0, 0, 0, 0, 0, 0 ) removeStyle(CmdHistoryDDL, WS_BORDER) global constant CmdET = createEx( RichEdit, "", CmdTIWin, 0, 0, 0, 0, w32or_all({ES_NOHIDESEL}), 0 ) removeStyle(CmdET, WS_BORDER) -- Create the IFS tab item global constant IFSTI = createEx(TabItem, "IFS", mainRightTC, 0, 0, 0, 0, 0, 0 ) global constant IFSTIWin = createEx( Window, "", IFSTI, 0, 0, 0, 0, {WS_CHILD,WS_VISIBLE}, 0 ) global constant IFSFileLT = createEx( LText, "", IFSTIWin, 0, 0, 0, 0, 0, 0 ) global constant IFSRE = createEx( RichEdit, "", IFSTIWin, 0, 0, 0, 0, w32or_all({ES_NOHIDESEL}), 0) removeStyle(IFSRE, WS_BORDER) setEnable(IFSRE, False) -- Create the QM Query tab item global constant QmQryTI = createEx(TabItem, "QM Query Mgr", mainRightTC, 0, 0, 0, 0, 0, 0 ) global constant QmQryTIWin = createEx( Window, "", QmQryTI, 0, 0, 0, 0, {WS_CHILD,WS_VISIBLE}, 0 ) global constant QmQrySrcMbrLT = createEx( LText, "", QmQryTIWin, 0, 0, 0, 0, 0, 0 ) global constant QmQryRE = createEx( RichEdit, "", QmQryTIWin, 0, 0, 0, 0, w32or_all({ES_NOHIDESEL}), 0) removeStyle(QmQryRE, WS_BORDER) setEnable(QmQryRE, False) -- Create the SQL script tab item global constant SQLScriptTI = createEx(TabItem, "SQL Script", mainRightTC, 0, 0, 0, 0, 0, 0 ) global constant SQLScriptTIWin = createEx( Window, "", SQLScriptTI, 0, 0, 0, 0, {WS_CHILD,WS_VISIBLE}, 0 ) global constant sql_script_TC = createEx(TabControl, "", SQLScriptTIWin, 0, 0, 0, 0, 0, 0 ) global constant script_TI = createEx(TabItem, "Test", sql_script_TC, 0, 0, 0, 0, 0, 0 ) global constant script_Win = createEx( Window, "", script_TI, 0, 0, 0, 0, {WS_CHILD,WS_VISIBLE}, 0 ) global constant stmt_LV = createEx( ListView, {"Statement"}, script_Win, 0, 0, 0, 0, or_all({LVS_REPORT,LVS_SHOWSELALWAYS}), 0 ) removeStyle(stmt_LV, WS_BORDER) global constant split_HS = createEx(HSplitter, "SQLScriptSplit", script_Win, 0, 100, 0, 0, 0, 0 ) global constant results_LV = createEx( ListView, {"Executed Statements"}, script_Win, 0, 0, 0, 0, or_all({LVS_REPORT,LVS_SHOWSELALWAYS}), 0 ) removeStyle(results_LV, WS_BORDER) sys_cx = getSystemMetrics(SM_CXSCREEN) sys_cy = getSystemMetrics(SM_CYSCREEN) limit_size(MainWin, 0.25, 0.25, sys_cx, sys_cy ) -- Manage the main window manage(MainWin, Main, {w32Edge,10}, {w32Edge,28}, {w32Edge,10},w32Edge) -- Manage left side of main window manage(Main, MainTV, w32Edge, w32Edge, {mainSplit,0}, w32Edge) -- Manage right side of main window, starting with the DB2 tab item manage(Main, mainRightTC, {mainSplit,0}, w32Edge, w32Edge, w32Edge) manage(DB2TI, DB2TIWin, {w32Edge,10}, {w32Edge,30}, {w32Edge,-10}, {w32Edge,-10}) manage(DB2TIWin, DB2DtlWin, w32Edge, w32Edge, w32Edge, {DB2Split1,0}) manage(DB2DtlWin, QuickLibLT, w32Edge, w32Edge, 50, 20) manage(DB2DtlWin, QuickLibET, {QuickLibLT,5},w32Edge, 100, 20) manage(DB2DtlWin, QuickFileLT, {QuickLibET,5}, w32Edge, 50, 20) manage(DB2DtlWin, QuickFileET, {QuickFileLT,5},w32Edge, 100, 20) manage(DB2DtlWin, QuickGoPB, {QuickFileET,5}, w32Edge, 88, 20) manage(DB2DtlWin, QuickDBRPB, {QuickGoPB,5}, w32Edge, 88, 20) manage(DB2DtlWin, QuickDBPropsPB, {QuickDBRPB,5}, w32Edge, 88, 20) manage(DB2DtlWin, MainLV, w32Edge, {QuickGoPB,5}, w32Edge, w32Edge) manage(DB2TIWin, DB2SQLWin, w32Edge, {DB2Split1, 0}, w32Edge, {DB2Split2, 0}) manage(DB2SQLWin, HistoryDDL, w32Edge, w32Edge, w32Edge, w32Edge) manage(DB2SQLWin, StatementRE, w32Edge, {HistoryDDL,5}, w32Edge, w32Edge) manage(DB2TIWin, DB2ResultsWin, w32Edge, {DB2Split2,0}, w32Edge, w32Edge) manage(DB2ResultsWin, ResultsLV, w32Edge, w32Edge, w32Edge, w32Edge) -- Manage the command tab item manage(CmdTI, CmdTIWin, {w32Edge,10}, {w32Edge,30}, {w32Edge,-10}, {w32Edge,-10}) manage(CmdTIWin, CmdHistoryDDL, w32Edge, w32Edge, w32Edge, w32Edge) manage(CmdTIWin, CmdET, w32Edge, {CmdHistoryDDL,5}, w32Edge, w32Edge) -- Mange the IFS tab item manage(IFSTI, IFSTIWin, {w32Edge,10}, {w32Edge,30}, {w32Edge,-10}, {w32Edge,-10}) manage(IFSTIWin, IFSFileLT, w32Edge, w32Edge, w32Edge,{IFSFileLT,24}) manage(IFSTIWin, IFSRE, w32Edge, {IFSFileLT,5}, w32Edge, w32Edge) -- Manage the QM Query tab item manage(QmQryTI, QmQryTIWin, {w32Edge,10}, {w32Edge,30}, {w32Edge,-10}, {w32Edge,-10}) manage(QmQryTIWin, QmQrySrcMbrLT, w32Edge, w32Edge, w32Edge, 20) manage(QmQryTIWin, QmQryRE, w32Edge, {QmQrySrcMbrLT,10}, w32Edge, w32Edge) manage(SQLScriptTI, SQLScriptTIWin, {w32Edge,10}, {w32Edge,30}, {w32Edge,-10}, {w32Edge,-10}) manage(SQLScriptTIWin, sql_script_TC, w32Edge, w32Edge, w32Edge, w32Edge) manage(sql_script_TC, script_TI, w32Edge, w32Edge, w32Edge, w32Edge) manage(script_TI, script_Win, {w32Edge,10}, {w32Edge,30}, {w32Edge,-10}, {w32Edge,-10}) manage(script_Win, stmt_LV, w32Edge, w32Edge, w32Edge, {split_HS,0}) manage(script_Win, results_LV, w32Edge, {split_HS,0}, w32Edge, w32Edge) WinMain(MainWin, Maximized)
If you move the horizontal bar that divides the two windows you should see what I mean. The second is a request to maybe make the library easier to use. In the example above, I have to create a window as a child of a tab item in order for the placement to work. It would sure be nice if that wasn't a requirement (or at least I think it's a requirement). IOW, just be able to create controls as a child of the tab item and be able to use splitters. Thanks! Jonas Temple http://www.yhti.net/~jktemple
10. Re: Greg Haberek - xControls
- Posted by "Greg Haberek" <ghaberek at gmail.com> Dec 29, 2006
- 732 views
- Last edited Dec 30, 2006
> I've got a couple of things with xControls that I want to run by you. The > first is I'm trying to build a tab-control-within-a-tab-control feature into my > application and using xControls I'm getting considerable flickering from the > nested tab. The following example should show you what I mean: > > (code snipped) > > If you move the horizontal bar that divides the two windows you should see > what I mean. Without even running the code, I can tell you that tab controls don't play well with manage(). If you check the code, you'll find a few unique cases where I have to check for TabItem and TabControl. > The second is a request to maybe make the library easier to use. In the > example above, I have to create a window as a child of a tab item in order for > the placement to work. It would sure be nice if that wasn't a requirement (or at > least I think it's a requirement). IOW, just be able to create controls as a > child of the tab item and be able to use splitters. This goes along with what I said above, for some reason unbeknownst to me, placing the controls just on the TabItem leads to weird (and I mean *weird*) repaint issues. Sometimes the controls show up, sometimes they don't. Its also why you get the flickering. The only sure-fire option I've come up with is to write my *own* TabControl for xControls, maybe TabControlEx or something. That way I can control the behavior from the ground up. But that's a lot of work, and integrating it with the existing Win32Lib functions may prove abit cumbersome. I'll go through the code this weekend and see if I can improve anything. Its been a few months since I've had a go at xControls. I'm currently working on a major Euphoria-driven project for financial gain, so it's been taking up all of my free coding time. :)
11. Re: Greg Haberek - xControls
- Posted by cklester <cklester at yahoo.com> Dec 29, 2006
- 697 views
- Last edited Dec 30, 2006
Greg Haberek wrote: > > I'm currently working on a major Euphoria-driven project for financial > gain, so it's been taking up all of my free coding time. :) ooh, a few details? nothing that would violate a non-disclosure, of course... -=ck "Programming in a state of Euphoria." http://www.cklester.com/euphoria/