Full Screen Button would be nice

classic Classic list List threaded Threaded
18 messages Options
Ted F.A. van Gaalen Ted F.A. van Gaalen
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Full Screen Button would be nice

Hi there

Thanks for creating version 1.3 !!!!!!!

-loaded Seaside into it.
-did a file-in of my Seaside pages
Works. OK

Still missing:
What I really would like 
perhaps in the next release
a Full Screen Toggle Button
somewhere on the desktop..

or -like in the Chrome Internet Browser
could you assign it to the F11 key?
just an idea.

Don't understand why it is hidden 
in Settings browser>>appearance>>desktop

(IMHO it does not belong there at all
it's not a Setting but just a window state..)

For now, I've solved this by creating this little helper,
which, due to my laziness to give it coordinates,
drops a button in the upper left corner.
Mais enfin, it works. 

The class:

SimpleButtonMorph subclass: #FullScreenFlipFlopMorph
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'TGUtil-One'

with just this two instance methods:

initialize
super initialize.
self
target: self;
label: 'Full Screen';
color: Color orange;
actionSelector: #toggle;
openInWorld "target is self is Smalltalk;"
toggle
Display toggleFullScreen

In a workspace brought to life with evaluating

fullScreenFlipFlop := FullScreenFlipFlopMorph new.


Another question:

As 1.3 uses a cog VM. 
still using  a non-cog VM?
This would imply a cog VM
based image would not run on 
the seasidehosting?


What happened to the user window styles? 
(I only see Default and DemoMode)
I liked the sort of Aqua themes (I have 7 apples, they are real and in the kitchen :o)


Kind Regards
TedvG











Benjamin Van Ryseghem-2 Benjamin Van Ryseghem-2
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Full Screen Button would be nice

Good idea :)

but imo, it shouldn't be a subclass of SimpleButtonMorph.
I think a class representing the model is more appropriate.


Ben


On Nov 28, 2011, at 10:08 PM, Ted F.A. van Gaalen wrote:

Hi there

Thanks for creating version 1.3 !!!!!!!

-loaded Seaside into it.
-did a file-in of my Seaside pages
Works. OK

Still missing:
What I really would like 
perhaps in the next release
a Full Screen Toggle Button
somewhere on the desktop..

or -like in the Chrome Internet Browser
could you assign it to the F11 key?
just an idea.

Don't understand why it is hidden 
in Settings browser>>appearance>>desktop

(IMHO it does not belong there at all
it's not a Setting but just a window state..)

For now, I've solved this by creating this little helper,
which, due to my laziness to give it coordinates,
drops a button in the upper left corner.
Mais enfin, it works. 

The class:

SimpleButtonMorph subclass: #FullScreenFlipFlopMorph
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'TGUtil-One'

with just this two instance methods:

initialize
super initialize.
self
target: self;
label: 'Full Screen';
color: Color orange;
actionSelector: #toggle;
openInWorld "target is self is Smalltalk;"
toggle
Display toggleFullScreen

In a workspace brought to life with evaluating

fullScreenFlipFlop := FullScreenFlipFlopMorph new.


Another question:

As 1.3 uses a cog VM. 
still using  a non-cog VM?
This would imply a cog VM
based image would not run on 
the seasidehosting?


What happened to the user window styles? 
(I only see Default and DemoMode)
I liked the sort of Aqua themes (I have 7 apples, they are real and in the kitchen :o)


Kind Regards
TedvG












Ted F.A. van Gaalen Ted F.A. van Gaalen
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Full Screen Button would be nice

Hi Ben

All the functionality needed is just
to toggle a Display state..

then why use model?

Ted

On Mon, Nov 28, 2011 at 10:32 PM, Benjamin <[hidden email]> wrote:
Good idea :)

but imo, it shouldn't be a subclass of SimpleButtonMorph.
I think a class representing the model is more appropriate.


Ben


On Nov 28, 2011, at 10:08 PM, Ted F.A. van Gaalen wrote:

Hi there

Thanks for creating version 1.3 !!!!!!!

-loaded Seaside into it.
-did a file-in of my Seaside pages
Works. OK

Still missing:
What I really would like 
perhaps in the next release
a Full Screen Toggle Button
somewhere on the desktop..

or -like in the Chrome Internet Browser
could you assign it to the F11 key?
just an idea.

Don't understand why it is hidden 
in Settings browser>>appearance>>desktop

(IMHO it does not belong there at all
it's not a Setting but just a window state..)

For now, I've solved this by creating this little helper,
which, due to my laziness to give it coordinates,
drops a button in the upper left corner.
Mais enfin, it works. 

The class:

SimpleButtonMorph subclass: #FullScreenFlipFlopMorph
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'TGUtil-One'

with just this two instance methods:

initialize
super initialize.
self
target: self;
label: 'Full Screen';
color: Color orange;
actionSelector: #toggle;
openInWorld "target is self is Smalltalk;"
toggle
Display toggleFullScreen

In a workspace brought to life with evaluating

fullScreenFlipFlop := FullScreenFlipFlopMorph new.


Another question:

As 1.3 uses a cog VM. 
still using  a non-cog VM?
This would imply a cog VM
based image would not run on 
the seasidehosting?


What happened to the user window styles? 
(I only see Default and DemoMode)
I liked the sort of Aqua themes (I have 7 apples, they are real and in the kitchen :o)


Kind Regards
TedvG













Benjamin Van Ryseghem-2 Benjamin Van Ryseghem-2
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Full Screen Button would be nice

Because it's not a specific button, it's a simple button used in a specific way


Ben

On Nov 28, 2011, at 10:44 PM, Ted F.A. van Gaalen wrote:

Hi Ben

All the functionality needed is just
to toggle a Display state..

then why use model?

Ted

On Mon, Nov 28, 2011 at 10:32 PM, Benjamin <[hidden email]> wrote:
Good idea :)

but imo, it shouldn't be a subclass of SimpleButtonMorph.
I think a class representing the model is more appropriate.


Ben


On Nov 28, 2011, at 10:08 PM, Ted F.A. van Gaalen wrote:

Hi there

Thanks for creating version 1.3 !!!!!!!

-loaded Seaside into it.
-did a file-in of my Seaside pages
Works. OK

Still missing:
What I really would like 
perhaps in the next release
a Full Screen Toggle Button
somewhere on the desktop..

or -like in the Chrome Internet Browser
could you assign it to the F11 key?
just an idea.

Don't understand why it is hidden 
in Settings browser>>appearance>>desktop

(IMHO it does not belong there at all
it's not a Setting but just a window state..)

For now, I've solved this by creating this little helper,
which, due to my laziness to give it coordinates,
drops a button in the upper left corner.
Mais enfin, it works. 

The class:

SimpleButtonMorph subclass: #FullScreenFlipFlopMorph
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'TGUtil-One'

with just this two instance methods:

initialize
super initialize.
self
target: self;
label: 'Full Screen';
color: Color orange;
actionSelector: #toggle;
openInWorld "target is self is Smalltalk;"
toggle
Display toggleFullScreen

In a workspace brought to life with evaluating

fullScreenFlipFlop := FullScreenFlipFlopMorph new.


Another question:

As 1.3 uses a cog VM. 
still using  a non-cog VM?
This would imply a cog VM
based image would not run on 
the seasidehosting?


What happened to the user window styles? 
(I only see Default and DemoMode)
I liked the sort of Aqua themes (I have 7 apples, they are real and in the kitchen :o)


Kind Regards
TedvG














Ted F.A. van Gaalen Ted F.A. van Gaalen
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Full Screen Button would be nice

Could you be more elaborate on this, Ben?
I don't see it (yet)
thanks
Ted

On Mon, Nov 28, 2011 at 10:58 PM, Benjamin <[hidden email]> wrote:
Because it's not a specific button, it's a simple button used in a specific way


Ben

On Nov 28, 2011, at 10:44 PM, Ted F.A. van Gaalen wrote:

Hi Ben

All the functionality needed is just
to toggle a Display state..

then why use model?

Ted

On Mon, Nov 28, 2011 at 10:32 PM, Benjamin <[hidden email]> wrote:
Good idea :)

but imo, it shouldn't be a subclass of SimpleButtonMorph.
I think a class representing the model is more appropriate.


Ben


On Nov 28, 2011, at 10:08 PM, Ted F.A. van Gaalen wrote:

Hi there

Thanks for creating version 1.3 !!!!!!!

-loaded Seaside into it.
-did a file-in of my Seaside pages
Works. OK

Still missing:
What I really would like 
perhaps in the next release
a Full Screen Toggle Button
somewhere on the desktop..

or -like in the Chrome Internet Browser
could you assign it to the F11 key?
just an idea.

Don't understand why it is hidden 
in Settings browser>>appearance>>desktop

(IMHO it does not belong there at all
it's not a Setting but just a window state..)

For now, I've solved this by creating this little helper,
which, due to my laziness to give it coordinates,
drops a button in the upper left corner.
Mais enfin, it works. 

The class:

SimpleButtonMorph subclass: #FullScreenFlipFlopMorph
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'TGUtil-One'

with just this two instance methods:

initialize
super initialize.
self
target: self;
label: 'Full Screen';
color: Color orange;
actionSelector: #toggle;
openInWorld "target is self is Smalltalk;"
toggle
Display toggleFullScreen

In a workspace brought to life with evaluating

fullScreenFlipFlop := FullScreenFlipFlopMorph new.


Another question:

As 1.3 uses a cog VM. 
still using  a non-cog VM?
This would imply a cog VM
based image would not run on 
the seasidehosting?


What happened to the user window styles? 
(I only see Default and DemoMode)
I liked the sort of Aqua themes (I have 7 apples, they are real and in the kitchen :o)


Kind Regards
TedvG















Benjamin Van Ryseghem-2 Benjamin Van Ryseghem-2
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Full Screen Button would be nice

Here, you are not changing the mechanism of the button, you are connecting a button to a model (when i click, i turn on/off fullscreen).

It's not a specific button (like a dunno, a button with 3 different states or stgh else).

Your button is a classical one, but you want a specific model to plug your button with :)


If you want, I could do a little piece of code to show what i mean :)



Ben



On Nov 28, 2011, at 11:03 PM, Ted F.A. van Gaalen wrote:

Could you be more elaborate on this, Ben?
I don't see it (yet)
thanks
Ted

On Mon, Nov 28, 2011 at 10:58 PM, Benjamin <[hidden email]> wrote:
Because it's not a specific button, it's a simple button used in a specific way


Ben

On Nov 28, 2011, at 10:44 PM, Ted F.A. van Gaalen wrote:

Hi Ben

All the functionality needed is just
to toggle a Display state..

then why use model?

Ted

On Mon, Nov 28, 2011 at 10:32 PM, Benjamin <[hidden email]> wrote:
Good idea :)

but imo, it shouldn't be a subclass of SimpleButtonMorph.
I think a class representing the model is more appropriate.


Ben


On Nov 28, 2011, at 10:08 PM, Ted F.A. van Gaalen wrote:

Hi there

Thanks for creating version 1.3 !!!!!!!

-loaded Seaside into it.
-did a file-in of my Seaside pages
Works. OK

Still missing:
What I really would like 
perhaps in the next release
a Full Screen Toggle Button
somewhere on the desktop..

or -like in the Chrome Internet Browser
could you assign it to the F11 key?
just an idea.

Don't understand why it is hidden 
in Settings browser>>appearance>>desktop

(IMHO it does not belong there at all
it's not a Setting but just a window state..)

For now, I've solved this by creating this little helper,
which, due to my laziness to give it coordinates,
drops a button in the upper left corner.
Mais enfin, it works. 

The class:

SimpleButtonMorph subclass: #FullScreenFlipFlopMorph
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'TGUtil-One'

with just this two instance methods:

initialize
super initialize.
self
target: self;
label: 'Full Screen';
color: Color orange;
actionSelector: #toggle;
openInWorld "target is self is Smalltalk;"
toggle
Display toggleFullScreen

In a workspace brought to life with evaluating

fullScreenFlipFlop := FullScreenFlipFlopMorph new.


Another question:

As 1.3 uses a cog VM. 
still using  a non-cog VM?
This would imply a cog VM
based image would not run on 
the seasidehosting?


What happened to the user window styles? 
(I only see Default and DemoMode)
I liked the sort of Aqua themes (I have 7 apples, they are real and in the kitchen :o)


Kind Regards
TedvG
















Guillermo Polito Guillermo Polito
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Full Screen Button would be nice

In two words, Ben means to use composition over inheritance :P.

Guille

On Mon, Nov 28, 2011 at 7:10 PM, Benjamin <[hidden email]> wrote:
Here, you are not changing the mechanism of the button, you are connecting a button to a model (when i click, i turn on/off fullscreen).

It's not a specific button (like a dunno, a button with 3 different states or stgh else).

Your button is a classical one, but you want a specific model to plug your button with :)


If you want, I could do a little piece of code to show what i mean :)



Ben



On Nov 28, 2011, at 11:03 PM, Ted F.A. van Gaalen wrote:

Could you be more elaborate on this, Ben?
I don't see it (yet)
thanks
Ted

On Mon, Nov 28, 2011 at 10:58 PM, Benjamin <[hidden email]> wrote:
Because it's not a specific button, it's a simple button used in a specific way


Ben

On Nov 28, 2011, at 10:44 PM, Ted F.A. van Gaalen wrote:

Hi Ben

All the functionality needed is just
to toggle a Display state..

then why use model?

Ted

On Mon, Nov 28, 2011 at 10:32 PM, Benjamin <[hidden email]> wrote:
Good idea :)

but imo, it shouldn't be a subclass of SimpleButtonMorph.
I think a class representing the model is more appropriate.


Ben


On Nov 28, 2011, at 10:08 PM, Ted F.A. van Gaalen wrote:

Hi there

Thanks for creating version 1.3 !!!!!!!

-loaded Seaside into it.
-did a file-in of my Seaside pages
Works. OK

Still missing:
What I really would like 
perhaps in the next release
a Full Screen Toggle Button
somewhere on the desktop..

or -like in the Chrome Internet Browser
could you assign it to the F11 key?
just an idea.

Don't understand why it is hidden 
in Settings browser>>appearance>>desktop

(IMHO it does not belong there at all
it's not a Setting but just a window state..)

For now, I've solved this by creating this little helper,
which, due to my laziness to give it coordinates,
drops a button in the upper left corner.
Mais enfin, it works. 

The class:

SimpleButtonMorph subclass: #FullScreenFlipFlopMorph
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'TGUtil-One'

with just this two instance methods:

initialize
super initialize.
self
target: self;
label: 'Full Screen';
color: Color orange;
actionSelector: #toggle;
openInWorld "target is self is Smalltalk;"
toggle
Display toggleFullScreen

In a workspace brought to life with evaluating

fullScreenFlipFlop := FullScreenFlipFlopMorph new.


Another question:

As 1.3 uses a cog VM. 
still using  a non-cog VM?
This would imply a cog VM
based image would not run on 
the seasidehosting?


What happened to the user window styles? 
(I only see Default and DemoMode)
I liked the sort of Aqua themes (I have 7 apples, they are real and in the kitchen :o)


Kind Regards
TedvG

















Ted F.A. van Gaalen Ted F.A. van Gaalen
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Full Screen Button would be nice

Hi Guille, Ben
I've just found this very convinient to subclass it and give it
its own behaviour.. what's wrong with that? Seems right OOP to me..
(I am a descendant of my mother and father (wow multiple inheritance :o)
in essence not very much different from my parents, still,
i exhibit other behaviour e.g. working with computers..)
But, yes, an example of what might be a better solution here
is appreciated, thanks
Ted
Anyone answering my other questions? Thanks

(i only have 6 apples no, I've just eaten one)


On Mon, Nov 28, 2011 at 11:19 PM, Guillermo Polito <[hidden email]> wrote:
In two words, Ben means to use composition over inheritance :P.

Guille


On Mon, Nov 28, 2011 at 7:10 PM, Benjamin <[hidden email]> wrote:
Here, you are not changing the mechanism of the button, you are connecting a button to a model (when i click, i turn on/off fullscreen).

It's not a specific button (like a dunno, a button with 3 different states or stgh else).

Your button is a classical one, but you want a specific model to plug your button with :)


If you want, I could do a little piece of code to show what i mean :)



Ben



On Nov 28, 2011, at 11:03 PM, Ted F.A. van Gaalen wrote:

Could you be more elaborate on this, Ben?
I don't see it (yet)
thanks
Ted

On Mon, Nov 28, 2011 at 10:58 PM, Benjamin <[hidden email]> wrote:
Because it's not a specific button, it's a simple button used in a specific way


Ben

On Nov 28, 2011, at 10:44 PM, Ted F.A. van Gaalen wrote:

Hi Ben

All the functionality needed is just
to toggle a Display state..

then why use model?

Ted

On Mon, Nov 28, 2011 at 10:32 PM, Benjamin <[hidden email]> wrote:
Good idea :)

but imo, it shouldn't be a subclass of SimpleButtonMorph.
I think a class representing the model is more appropriate.


Ben


On Nov 28, 2011, at 10:08 PM, Ted F.A. van Gaalen wrote:

Hi there

Thanks for creating version 1.3 !!!!!!!

-loaded Seaside into it.
-did a file-in of my Seaside pages
Works. OK

Still missing:
What I really would like 
perhaps in the next release
a Full Screen Toggle Button
somewhere on the desktop..

or -like in the Chrome Internet Browser
could you assign it to the F11 key?
just an idea.

Don't understand why it is hidden 
in Settings browser>>appearance>>desktop

(IMHO it does not belong there at all
it's not a Setting but just a window state..)

For now, I've solved this by creating this little helper,
which, due to my laziness to give it coordinates,
drops a button in the upper left corner.
Mais enfin, it works. 

The class:

SimpleButtonMorph subclass: #FullScreenFlipFlopMorph
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'TGUtil-One'

with just this two instance methods:

initialize
super initialize.
self
target: self;
label: 'Full Screen';
color: Color orange;
actionSelector: #toggle;
openInWorld "target is self is Smalltalk;"
toggle
Display toggleFullScreen

In a workspace brought to life with evaluating

fullScreenFlipFlop := FullScreenFlipFlopMorph new.


Another question:

As 1.3 uses a cog VM. 
still using  a non-cog VM?
This would imply a cog VM
based image would not run on 
the seasidehosting?


What happened to the user window styles? 
(I only see Default and DemoMode)
I liked the sort of Aqua themes (I have 7 apples, they are real and in the kitchen :o)


Kind Regards
TedvG


















Sean P. DeNigris Sean P. DeNigris
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Full Screen Button would be nice

In reply to this post by Ted F.A. van Gaalen
TedvG TedvG wrote
What I really would like
perhaps in the next release
a Full Screen Toggle Button
somewhere on the desktop..
Here's a class-side method I use to add such a button to the world menu:
    fullscreenMenuOn: aBuilder

        <worldMenu>
        (aBuilder item: #'Toggle Fullscreen')
                action:[ Display toggleFullScreen ].


TedvG TedvG wrote
like in the Chrome Internet Browser
could you assign it to the F11 key?
You can now use Keymapping to use whatever shortcut you want for any action. How about:
    Morph class>>buildKeymappingsOn: aBuilder
        <keymap>
        (aBuilder shortcut: #toggleFullscreen)
                category: #Fullscreen
                default: $l command "I couldn't test Fn-11 because the Mac system uses it"
                do: [ :morph :event | Display toggleFullScreen ].
        aBuilder attachShortcutCategory: #Fullscreen to: Morph.

HTH,
Sean
Benjamin Van Ryseghem-2 Benjamin Van Ryseghem-2
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Full Screen Button would be nice

In reply to this post by Ted F.A. van Gaalen
Here is a little example of what I meant :)




Ben

On Nov 28, 2011, at 11:28 PM, Ted F.A. van Gaalen wrote:

Hi Guille, Ben
I've just found this very convinient to subclass it and give it
its own behaviour.. what's wrong with that? Seems right OOP to me..
(I am a descendant of my mother and father (wow multiple inheritance :o)
in essence not very much different from my parents, still,
i exhibit other behaviour e.g. working with computers..)
But, yes, an example of what might be a better solution here
is appreciated, thanks
Ted
Anyone answering my other questions? Thanks

(i only have 6 apples no, I've just eaten one)


On Mon, Nov 28, 2011 at 11:19 PM, Guillermo Polito <[hidden email]> wrote:
In two words, Ben means to use composition over inheritance :P.

Guille


On Mon, Nov 28, 2011 at 7:10 PM, Benjamin <[hidden email]> wrote:
Here, you are not changing the mechanism of the button, you are connecting a button to a model (when i click, i turn on/off fullscreen).

It's not a specific button (like a dunno, a button with 3 different states or stgh else).

Your button is a classical one, but you want a specific model to plug your button with :)


If you want, I could do a little piece of code to show what i mean :)



Ben



On Nov 28, 2011, at 11:03 PM, Ted F.A. van Gaalen wrote:

Could you be more elaborate on this, Ben?
I don't see it (yet)
thanks
Ted

On Mon, Nov 28, 2011 at 10:58 PM, Benjamin <[hidden email]> wrote:
Because it's not a specific button, it's a simple button used in a specific way


Ben

On Nov 28, 2011, at 10:44 PM, Ted F.A. van Gaalen wrote:

Hi Ben

All the functionality needed is just
to toggle a Display state..

then why use model?

Ted

On Mon, Nov 28, 2011 at 10:32 PM, Benjamin <[hidden email]> wrote:
Good idea :)

but imo, it shouldn't be a subclass of SimpleButtonMorph.
I think a class representing the model is more appropriate.


Ben


On Nov 28, 2011, at 10:08 PM, Ted F.A. van Gaalen wrote:

Hi there

Thanks for creating version 1.3 !!!!!!!

-loaded Seaside into it.
-did a file-in of my Seaside pages
Works. OK

Still missing:
What I really would like 
perhaps in the next release
a Full Screen Toggle Button
somewhere on the desktop..

or -like in the Chrome Internet Browser
could you assign it to the F11 key?
just an idea.

Don't understand why it is hidden 
in Settings browser>>appearance>>desktop

(IMHO it does not belong there at all
it's not a Setting but just a window state..)

For now, I've solved this by creating this little helper,
which, due to my laziness to give it coordinates,
drops a button in the upper left corner.
Mais enfin, it works. 

The class:

SimpleButtonMorph subclass: #FullScreenFlipFlopMorph
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'TGUtil-One'

with just this two instance methods:

initialize
super initialize.
self
target: self;
label: 'Full Screen';
color: Color orange;
actionSelector: #toggle;
openInWorld "target is self is Smalltalk;"
toggle
Display toggleFullScreen

In a workspace brought to life with evaluating

fullScreenFlipFlop := FullScreenFlipFlopMorph new.


Another question:

As 1.3 uses a cog VM. 
still using  a non-cog VM?
This would imply a cog VM
based image would not run on 
the seasidehosting?


What happened to the user window styles? 
(I only see Default and DemoMode)
I liked the sort of Aqua themes (I have 7 apples, they are real and in the kitchen :o)


Kind Regards
TedvG




















FullScreenSwitcher.st (1K) Download Attachment
Guillermo Polito Guillermo Polito
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Full Screen Button would be nice

Why not subclassing?

As a general answer I'd say:

Subclassing is a very strong (and static) relationship, and in Pharo we have only single inheritance + traits, so inheritance is a single shot gun :).

Splitting the behavior from the button opens you a door in your design.  You can design button actions with shortcuts, or undo actions, and choose your own inheritance criteria suiting your needs.

Just that, it lets an open door for richer designs.

Now, the ammount of code for one or other solution is pretty the same too, you just add one class with the toggle behavior the first one inherits from Button and the other does not), and then the instantiation code should not differ too much.

Bye,
Guille

On Tue, Nov 29, 2011 at 12:52 PM, Benjamin <[hidden email]> wrote:
Here is a little example of what I meant :)




Ben

On Nov 28, 2011, at 11:28 PM, Ted F.A. van Gaalen wrote:

Hi Guille, Ben
I've just found this very convinient to subclass it and give it
its own behaviour.. what's wrong with that? Seems right OOP to me..
(I am a descendant of my mother and father (wow multiple inheritance :o)
in essence not very much different from my parents, still,
i exhibit other behaviour e.g. working with computers..)
But, yes, an example of what might be a better solution here
is appreciated, thanks
Ted
Anyone answering my other questions? Thanks

(i only have 6 apples no, I've just eaten one)


On Mon, Nov 28, 2011 at 11:19 PM, Guillermo Polito <[hidden email]> wrote:
In two words, Ben means to use composition over inheritance :P.

Guille


On Mon, Nov 28, 2011 at 7:10 PM, Benjamin <[hidden email]> wrote:
Here, you are not changing the mechanism of the button, you are connecting a button to a model (when i click, i turn on/off fullscreen).

It's not a specific button (like a dunno, a button with 3 different states or stgh else).

Your button is a classical one, but you want a specific model to plug your button with :)


If you want, I could do a little piece of code to show what i mean :)



Ben



On Nov 28, 2011, at 11:03 PM, Ted F.A. van Gaalen wrote:

Could you be more elaborate on this, Ben?
I don't see it (yet)
thanks
Ted

On Mon, Nov 28, 2011 at 10:58 PM, Benjamin <[hidden email]> wrote:
Because it's not a specific button, it's a simple button used in a specific way


Ben

On Nov 28, 2011, at 10:44 PM, Ted F.A. van Gaalen wrote:

Hi Ben

All the functionality needed is just
to toggle a Display state..

then why use model?

Ted

On Mon, Nov 28, 2011 at 10:32 PM, Benjamin <[hidden email]> wrote:
Good idea :)

but imo, it shouldn't be a subclass of SimpleButtonMorph.
I think a class representing the model is more appropriate.


Ben


On Nov 28, 2011, at 10:08 PM, Ted F.A. van Gaalen wrote:

Hi there

Thanks for creating version 1.3 !!!!!!!

-loaded Seaside into it.
-did a file-in of my Seaside pages
Works. OK

Still missing:
What I really would like 
perhaps in the next release
a Full Screen Toggle Button
somewhere on the desktop..

or -like in the Chrome Internet Browser
could you assign it to the F11 key?
just an idea.

Don't understand why it is hidden 
in Settings browser>>appearance>>desktop

(IMHO it does not belong there at all
it's not a Setting but just a window state..)

For now, I've solved this by creating this little helper,
which, due to my laziness to give it coordinates,
drops a button in the upper left corner.
Mais enfin, it works. 

The class:

SimpleButtonMorph subclass: #FullScreenFlipFlopMorph
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'TGUtil-One'

with just this two instance methods:

initialize
super initialize.
self
target: self;
label: 'Full Screen';
color: Color orange;
actionSelector: #toggle;
openInWorld "target is self is Smalltalk;"
toggle
Display toggleFullScreen

In a workspace brought to life with evaluating

fullScreenFlipFlop := FullScreenFlipFlopMorph new.


Another question:

As 1.3 uses a cog VM. 
still using  a non-cog VM?
This would imply a cog VM
based image would not run on 
the seasidehosting?


What happened to the user window styles? 
(I only see Default and DemoMode)
I liked the sort of Aqua themes (I have 7 apples, they are real and in the kitchen :o)


Kind Regards
TedvG





















Mariano Martinez Peck Mariano Martinez Peck
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Full Screen Button would be nice

In reply to this post by Ted F.A. van Gaalen


On Mon, Nov 28, 2011 at 6:08 PM, Ted F.A. van Gaalen <[hidden email]> wrote:
Hi there

Thanks for creating version 1.3 !!!!!!!

-loaded Seaside into it.
-did a file-in of my Seaside pages
Works. OK

Still missing:
What I really would like 
perhaps in the next release
a Full Screen Toggle Button
somewhere on the desktop..

or -like in the Chrome Internet Browser
could you assign it to the F11 key?
just an idea.


You can load KeyMappings  and define a shortcut for that.
It is really really easy to add the shortcut once the functionality is working.
Of course, once Keymappins is integrated in Pharo 1.4 and if the rest is interested as well, we can put it by default in pharo :)

 
Don't understand why it is hidden 
in Settings browser>>appearance>>desktop

(IMHO it does not belong there at all
it's not a Setting but just a window state..)

For now, I've solved this by creating this little helper,
which, due to my laziness to give it coordinates,
drops a button in the upper left corner.
Mais enfin, it works. 

The class:

SimpleButtonMorph subclass: #FullScreenFlipFlopMorph
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'TGUtil-One'

with just this two instance methods:

initialize
super initialize.
self
target: self;
label: 'Full Screen';
color: Color orange;
actionSelector: #toggle;
openInWorld "target is self is Smalltalk;"
toggle
Display toggleFullScreen

In a workspace brought to life with evaluating

fullScreenFlipFlop := FullScreenFlipFlopMorph new.


Another question:

As 1.3 uses a cog VM. 
still using  a non-cog VM?
This would imply a cog VM
based image would not run on 
the seasidehosting?


What happened to the user window styles? 
(I only see Default and DemoMode)
I liked the sort of Aqua themes (I have 7 apples, they are real and in the kitchen :o)


Kind Regards
TedvG














--
Mariano
http://marianopeck.wordpress.com

Helene Bilbo Helene Bilbo
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Full Screen Button would be nice

In reply to this post by Sean P. DeNigris
Sean P. DeNigris wrote
Here's a class-side method I use to add such a button to the world menu:

    fullscreenMenuOn: aBuilder

        <worldMenu>
        (aBuilder item: #'Toggle Fullscreen')
                action:[ Display toggleFullScreen ].
I can put this in any class i like, right? What would be a good place?

H.
Sean P. DeNigris Sean P. DeNigris
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Full Screen Button would be nice

Helene Bilbo wrote
I can put this in any class i like, right? What would be a good place?
Yes. I have a class that holds all my image customizations, so I put it there.
Ted F.A. van Gaalen Ted F.A. van Gaalen
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Full Screen Button would be nice

In reply to this post by Mariano Martinez Peck

Hi
Thank you all for your insights.

I did know about attaching items to the world menu
but then, I need two mouse clicks to change the screen state..
I used to work with a single-screen system..

Anyway, all I really wanted is a little simple button
that sleeps in te corner, I'm beginning to get
attached to it. Never created a button with so little
code :o)

Will simply wait for better implementation in 1.4,
thanks in advance.

I still have this question:
What happened to the user window styles in 1.4?
(I only see Default and DemoMode)
Is there a package out there containing more styles
or are they already present in 1.4?

Regards

Ted


Sean P. DeNigris Sean P. DeNigris
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Full Screen Button would be nice

Ted F.A. van Gaalen wrote
Anyway, all I really wanted is a little simple button
that sleeps in te corner
Happy Holidays:
    (PluggableButtonMorph on: [ Display toggleFullScreen ] getState: nil action: #value)
        label: 'Toggle Fullscreen';
        openInWorld.
Sven Van Caekenberghe Sven Van Caekenberghe
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Full Screen Button would be nice


On 03 Dec 2011, at 03:09, Sean P. DeNigris wrote:

> Happy Holidays:
>    (PluggableButtonMorph on: [ Display toggleFullScreen ] getState: nil
> action: #value)
> label: 'Toggle Fullscreen';
> openInWorld.

This is really cool, thx!

IMHO something like this should be standard (maybe activateable in settings), preferrably with two state icons like

http://www.apple.com/macosx/whats-new/full-screen.html

Sven


Benjamin Van Ryseghem-2 Benjamin Van Ryseghem-2
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Full Screen Button would be nice


On Dec 3, 2011, at 12:29 PM, Sven Van Caekenberghe wrote:

>
> On 03 Dec 2011, at 03:09, Sean P. DeNigris wrote:
>
>> Happy Holidays:
>>   (PluggableButtonMorph on: [ Display toggleFullScreen ] getState: nil
>> action: #value)
>> label: 'Toggle Fullscreen';
>> openInWorld.
>
> This is really cool, thx!
>
> IMHO something like this should be standard (maybe activateable in settings), preferrably with two state icons like
>
> http://www.apple.com/macosx/whats-new/full-screen.html
>

For the two state icons, you can use ToggleIconicButton from NautilusCommon.

So maybe we should push it into the system :)

Ben

> Sven
>
>


Loading...