SmallSense__VariablePO.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 28 Apr 2014 08:36:50 +0100
changeset 329 0c0024acfccc
parent 185 75738108cc3f
child 343 b3d22e8c0a05
permissions -rw-r--r--
First shot on new search dialogs.

"{ Package: 'jv:smallsense' }"

"{ NameSpace: SmallSense }"

PO subclass:#VariablePO
	instanceVariableNames:'class type'
	classVariableNames:''
	poolDictionaries:''
	category:'SmallSense-Core-Interface-PO'
!


!VariablePO class methodsFor:'instance creation'!

argument: name

    ^self new name: name; type: #MethodArg

    "Created: / 26-11-2011 / 18:45:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

classVariable: name in: class

    ^self new name: name; type: #ClassVar; class: class

    "Created: / 26-11-2011 / 18:46:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

globalVariable: name

    ^self new name: name; type: #Global

    "Created: / 26-11-2011 / 18:57:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

instanceVariable: name in: class

    ^self new name: name; type: #InstanceVar; class: class

    "Created: / 26-11-2011 / 18:45:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

variable: name

    ^self new name: name; type: #MethodVar

    "Created: / 26-11-2011 / 18:45:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!VariablePO methodsFor:'accessing'!

class:something
    class := something.

    "Created: / 06-04-2011 / 16:51:42 / Jakub <zelenja7@fel.cvut.cz>"
!

stringToCompleteForLanguage: language

    "Answers a string to complete"

    ^name "/, ' '

    "Created: / 31-03-2014 / 23:09:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

type:something
    type := something.
! !

!VariablePO methodsFor:'displaying'!

displayLabel:aLabel h:lH on:aGC x:x y:y h:h
    | lw cn cnw fg y0 |

    super displayLabel:aLabel h:lH on:aGC x:x y:y h:h.

    class isNil ifTrue:[ ^ self ]. "/ Could be pseudo-variable

    lw :=  x + (parent isNil ifTrue:[IconWidth] ifFalse:[0]) + (self label widthOn: aGC).
    cn := class nameWithoutPrefix.
    cnw := aGC widthOfString: cn.
    y0 := y - (lH + 1 - h // 2).
    y0 := y0 + (cn ascentOn:aGC).  

    (aGC width > (lw + cnw + 5)) ifTrue:
        [fg := aGC paint.
        aGC paint: Color gray .
        aGC displayString: cn x: aGC width - cnw - 5 y: y0.
        aGC paint: fg.
    ]

    "Created: / 18-09-2013 / 00:19:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Modified: / 28-04-2014 / 00:24:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

displayOn:aGC x:x y:y opaque:opaque

    | lw cn cnw fg |

    super displayOn:aGC x:x y:y opaque:opaque.

    class isNil ifTrue:[^self].

    lw :=  x + 16 + (self label widthOn: aGC).
    cn := class nameWithoutPrefix.
    cnw := aGC widthOfString: cn.

    (aGC width > (lw + cnw + 5)) ifTrue:
        [fg := aGC paint.
        aGC paint: Color gray .
        aGC displayString: cn x: aGC width - cnw - 5 y: y.
        aGC paint: fg.
    ]

    "Created: / 21-05-2011 / 11:02:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Modified (format): / 17-09-2013 / 23:39:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!VariablePO methodsFor:'testing'!

isSmallSenseVariablePO
    ^ true
! !

!VariablePO class methodsFor:'documentation'!

version_HG

    ^ '$Changeset: <not expanded> $'
!

version_SVN
    ^ '$Id: SmallSense__VariablePO.st,v 1.2 2014/02/12 14:49:29 sr Exp $'
! !