Re: Suggestions and Stuff (& Linux)

new topic     » topic index » view thread      » older message » newer message

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

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu