May 27, 2003 Nested enumerated types | ||||
---|---|---|---|---|
| ||||
If I have, for example, my own window messages, classified as: 1. hook notifies 1.1. CBT hook - minimal value - maximal value window ... - creation - destruction - activation - resizing - moving 1.2. Keyboard hook - minimal value - maximal value key - pressing - releasing .. and others ... 2. internal notifies - minimal value - maximal value 2.1. window area refreshs 2.2. waiting to update bottom windows ........ The true object-oriented language will be able to let me use expressions such: if( msg.code >= msgvalues.internal.min ) ........... else if( msg.code >= msgvalues.hooks.cbt.min ) { if( msg.code <= msgvalues.hooks.cbt.max ) switch( msg.code ) { case msgvalues.hooks.cbt.create: ....... case msgvalues.hooks.cbt.destroy: ....... ....... } else if( msg.code <= msgvalues.hooks.keyboard.max ) .........; } ~Gh0sT~ ~Gh0sT~ [frankenstein@fastmail.fm] |
May 27, 2003 Re: Nested enumerated types | ||||
---|---|---|---|---|
| ||||
Posted in reply to ~Gh0sT~ | ~Gh0sT~ wrote:
> If I have, for example, my own window messages, classified as:
> 1. hook notifies
> 1.1. CBT hook
> - minimal value
> - maximal value
> window ...
> - creation
> - destruction
> - activation
> - resizing
> - moving
> 1.2. Keyboard hook
> - minimal value
> - maximal value
> key
> - pressing
> - releasing
> .. and others ...
> 2. internal notifies
> - minimal value
> - maximal value
> 2.1. window area refreshs
> 2.2. waiting to update bottom windows
> ........
>
> The true object-oriented language will be able to let me use expressions such:
> if( msg.code >= msgvalues.internal.min )
> ...........
> else if( msg.code >= msgvalues.hooks.cbt.min )
> {
> if( msg.code <= msgvalues.hooks.cbt.max )
> switch( msg.code )
> {
> case msgvalues.hooks.cbt.create:
> .......
> case msgvalues.hooks.cbt.destroy:
> .......
> .......
> }
> else if( msg.code <= msgvalues.hooks.keyboard.max )
> .........;
> }
>
>
>
> ~Gh0sT~
>
> ~Gh0sT~ [frankenstein@fastmail.fm]
Conceptually, enumerations are not integers, and they should not be treated like them. Comparing them for anything other than equality, or lack of same isn't a very sound idea. (like adding booleans. It's weird and doesn't make sense)
Aside from that, enumerations have no part at all in the object oriented paradigm. They're a completely orthagonal concept.
What I would do is have a message code and subcode. You could also simply prefix the enumerations, a la win32.
-- andy
|
Copyright © 1999-2021 by the D Language Foundation