Re: Suggestions and Stuff (& Linux)
Ralf wrote:
> libx --> liby --> libz
>=20
> What if, a small part of liby would need to be=20
> different in some cases. (due to different platform, etc.)
Yes and no; it depends on the class. Many of the classes will not be
portable.
For example, I plan to implement a base class called Generic, which
implements most of the common behaviors shared by Win32 controls and
windows: size, position, graphics, and so on. Obviously, the Generic =
class
is not going to be portable. And I also plan on following the Win32 =
scheme
of
=20
=C4=BF
=B3 Win32 Control Class Structure
=B3
=20
=C4=D9
=20
child window control =C4=C4=C4=C2=C4=C4=C4 button =C2=C4=C4 =
pushButton
=B3 =C3=C4=C4 checkBox=20
=B3 =C3=C4=C4 radioButton
=B3 =C3=C4=C4 groupBox
=B3 =C0=C4=C4 custom
=B3
=C3=C4=C4 static =C4=C2=C4=C4 frame
=B3 =C3=C4=C4 rectangle
=B3 =C0=C4=C4 text
=B3
=C3=C4=C4 scrollbar
=C3=C4=C4 edit =C4=C4=C4=C2=C4=C4 =
singleLine
=B3 =C3=C4=C4 multiLine
=B3 =C0=C4=C4 combo
=C3=C4=C4 listBox
=C3=C4=C4 icon
=C3=C4=C4 menu =C4=C4=C4=C2=C4=C4 =
dropDownMenu
=B3 =C0=C4=C4 popUpMenu
=B3
=C3=C4=C4 dialog =C4=C2=C4=C4 modal
=B3 =C3=C4=C4 modeless
=B3 =C3=C4=C4 messageBox
=B3 =C0=C4=C4 =
commonDialog=C2=C4=C4 fontDialog
=B3 =C3=C4=C4 =
searchDialog
=B3 =C3=C4=C4 =
searchDialog
=B3 =C3=C4=C4
replaceDialog
=B3 =C3=C4=C4 =
openFile
=B3 =C0=C4=C4
saveFileDialog
=B3
=C0=C4=C4 common =C4=C2=C4=C4 =
frameWindow =C2=C4=C4 toolBar
=B3 =C3=C4=C4 =
toolTip
=B3 =C0=C4=C4 =
statusBar
=B3
=C3=C4=C4 compound =
=C4=C4=C4=C2=C4=C4 propertyPage
=B3 =C0=C4=C4
propertySheet
=B3
=C3=C4=C4 explorer =
=C4=C4=C4=C2=C4=C4 treeView
=B3 =C0=C4=C4 =
listView
=C3=C4=C4 animation
=C3=C4=C4 dragList
=C3=C4=C4 header
=C3=C4=C4 imageList
=C3=C4=C4 progressBar
=C3=C4=C4 richEdit
=C3=C4=C4 tab
=C3=C4=C4 trackbar
=C0=C4=C4 upDown
=20
=C4=BF
=B3 Qt Control Class Structure
=B3
=20
=C4=D9
=20
widget =C4=C2=C4=C4 button =C4=C2=C4=C4 checkbox
=B3 =C3=C4=C4 pushButton
=B3 =C3=C4=C4 radioButton
=B3 =C0=C4=C4 comboBox
=B3 =20
=C3=C4=C4 dialog =C4=C2=C4=C4 fileDialog
=B3 =C3=C4=C4 messageBox
=B3 =C0=C4=C4 tabDialog
=B3 =20
=C3=C4=C4 frame =C4=C2=C4=C4 groupBox =
=C4=C4=C4=C4=C4=C4=C4 buttonGroup
=B3 =C3=C4=C4 LCDNumber
=B3 =C3=C4=C4 label
=B3 =C3=C4=C4 menuBar
=B3 =C3=C4=C4 progressBar
=B3 =C0=C4=C4 tableView =C4=C4=C2=C4=C4=C4 =
listBox
=B3 =C3=C4=C4=C4 =
multiLineEdit
=B3 =C0=C4=C4=C4 popupMenu
=C3=C4=C4 lineEdit
=C3=C4=C4 scrollBar
=C3=C4=C4 semiModal =C4 progressDialog
=C3=C4=C4 slider
=C3=C4=C4 tabBar
=C0=C4=C4 window
=20
=20
=C4=BF
=B3 Prolog++ Classes and Attributes
=B3
=20
=C4=D9
=20
Class Attribute
=20
widget position
size
bgColor
fgColor
pattern
=20
=20
item itemNumber used for tab order
name
textSize
textStyle
textFont
alignment
icon
text
visible
=20
button dimmed
hilite
=20
toggleButton state
=20
editBox focus
keyVerify
=20
listBox items
multiple
=20
popup items
=20
rectangle lineThickness
=20
scrollBar value
minimum
maximum
increment
page
=20
group texts
on
height
=20
=C4=BF
=B3 Prolog++ Messages
=B3
=20
=C4=D9
=20
Class Message
=20
=C4
button activate
arm
disarm
=20
field enter
leave
newValue
changeVerify
=20
popup entry
map
unmap
=20
listBox selection
=20
custom buttonDown
buttonUp
enter
leave
=20
scrollbar newValue
=20
=20
You are right, most of the classes will not be portable. For example, =
all
native control widgets will inherit from Generic (probably better named
Native or Win32) which will implement the common functionalities, such =
as=20
That's why a number of cross-platform libraries (such as Qt) choose to
emulate everything except for the windows. That way, you only have the
graphics and event codes to translate.
I plan on using native controls in WinLib, but had considered placing a
translator on the Win32 events, so the events would be portable:
Win32 event --> translator --> Generic event sent to class
This turns out not to be a good plan, since the control needs the =
original
parameters to do it's default behavior. Instead, each class will see =
the
events as Win32 events. One of the duties of the class is to trigger =
the
appropriate user defined behavior. For example, a ComboBox will trigger =
it's
onChange action when it sees a CBN_EDITCHANGE, while a ListBox will =
trigger
on it's onChange action when it sees an LBN_SELCHANGE.
The 'onChange' part is what the user is aware of, not the Win32 events. =
So=20
libx --> libg --> libz
libg =3D libd --> libe
The problem really lies in the fact, to make libg, you have to use, and
probably recode most of what you had already done in
liby.
Therefor, either, the choices which parts should be modular, should be =
made
at forehand, or you should come up with a system,
where splitting code up in different modular parts is quite easy. I'm =
not
saying it should consist of thousands of different
modular parts, but the way different parts address each other, should =
be
modular to how they address themselves. This way, you
can split up one part into a few different modular parts with not that =
much
effort. In which case, a library such as Win32Lib
can be developed and added to on demand, without at any time, have =
version
conflicts (my code doesn't work with the latest
version).
By now, most are probably confused to what I mean. This is just a =
project
management suggestion.
[Linux]
Ok, I've been able to install Linux, without loosing my normal data.
(borrowed Partition Magic 4) and it resides on a different
partition, lilo-bootmanager, etc. Now to the problem, I can't seem to =
get
X-Windows up and running. And I kind of dislike the
bash-shell. I can get around a little, but this is not what I had in =
mind.
I've installed XFree86, because it seems to be more a
standard than the Metro-X Server, however each time I start X, it goes =
blank
and a few seconds later I'm looking at the
linux-login again. Xconfigurator, sets up my Ati-card right (it seems), =
but
the real issue, I think is my monitor. Whenever a
resolution is changed, it goes blank. This is most likely due to bad =
H/V -
Syncs, setup. But my range: 50 - 120 is not any of
the default ranges, and the Xconfigurator says, I can _either_ choose =
any of
these industry standards or choose a _custom_
range. But how do I choose a custom rate ?
I suspect I need to be editing the configuration file myself, but where =
is
it ? And are there any better text-mode editors in
(red-hat, Hurricane release) Linux than edlin ?
Thanks for any help, I now some of you have installed Linux =
successfully, so
if you could help me, please do.
Also, does any one know some good beginner references, all I've learned =
from
the bash shell is from its help and info commands,
and just trying out. I've noticed I have multiple consoles available to
login, this is normal ? (chosen with Alt+F1/F2/F3
depending on how many consoles are already open)
Ralf
|
Not Categorized, Please Help
|
|