MSV FM

[email protected]: ~ $
Path : /lib64/tcl8.6/Tix8.4.3/
File Upload :
Current < : //lib64/tcl8.6/Tix8.4.3/PopMenu.tcl

# -*- mode: TCL; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
#
#	$Id: PopMenu.tcl,v 1.7 2004/03/28 02:44:57 hobbs Exp $
#
# PopMenu.tcl --
#
#	This file implements the TixPopupMenu widget
#
# Copyright (c) 1993-1999 Ioi Kim Lam.
# Copyright (c) 2000-2001 Tix Project Group.
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#

global tkPriv
if {![llength [info globals tkPriv]]} {
    tk::unsupported::ExposePrivateVariable tkPriv
}
#--------------------------------------------------------------------------
# tkPriv elements used in this file:
#
# inMenubutton -	
#--------------------------------------------------------------------------
#
foreach fun {tkMenuUnpost tkMbButtonUp tkMbEnter tkMbPost} {
    if {![llength [info commands $fun]]} {
	tk::unsupported::ExposePrivateCommand $fun
    }
}
unset fun

tixWidgetClass tixPopupMenu {
    -classname TixPopupMenu
    -superclass tixShell
    -method {
	bind post unbind
    }
    -flag {
	 -buttons -installcolormap -postcmd -spring -state -title
    }
    -configspec {
	{-buttons buttons Buttons {{3 {Any}}}}
	{-installcolormap installColormap InstallColormap false}
	{-postcmd postCmd PostCmd ""}
	{-spring spring Spring 1 tixVerifyBoolean}
	{-state state State normal}
	{-cursor corsor Cursor arrow}
    }
    -static {
	-buttons
    }
    -default  {
	{*Menu.tearOff			0}
    }
}

proc tixPopupMenu:InitWidgetRec {w} {
    upvar #0 $w data

    tixChainMethod $w InitWidgetRec

    set data(g:clients)   ""
}

proc tixPopupMenu:ConstructWidget {w} {
    upvar #0 $w data

    tixChainMethod $w ConstructWidget

    wm overrideredirect $w 1
    wm withdraw $w

    set data(w:menubutton) [menubutton $w.menubutton -text $data(-title) \
			    -menu $w.menubutton.menu -anchor w]
    set data(w:menu) [menu $w.menubutton.menu]

    pack $data(w:menubutton) -expand yes -fill both
}

proc tixPopupMenu:SetBindings {w} {
    upvar #0 $w data

    tixChainMethod $w SetBindings

    foreach elm $data(-buttons) {
	set btn [lindex $elm 0]
	foreach mod [lindex $elm 1] {
	    tixBind TixPopupMenu:MB:$w <$mod-ButtonPress-$btn> \
		"tixPopupMenu:Unpost $w"

	    tixBind TixPopupMenu:$w <$mod-ButtonPress-$btn> \
		"tixPopupMenu:post $w %W %x %y"
	}

	tixBind TixPopupMenu:MB:$w <ButtonRelease-$btn> \
	    "tixPopupMenu:BtnRelease $w %X %Y"

	tixBind TixPopupMenu:M:$w <Unmap> \
	    "tixPopupMenu:Unmap $w"
	tixBind TixPopupMenu:$w <ButtonRelease-$btn> \
	    "tixPopupMenu:BtnRelease $w %X %Y"

	tixAddBindTag $data(w:menubutton) TixPopupMenu:MB:$w
	tixAddBindTag $data(w:menu)       TixPopupMenu:M:$w
    }
}


#----------------------------------------------------------------------
# PrivateMethods:
#----------------------------------------------------------------------
proc tixPopupMenu:Unpost {w} {
    upvar #0 $w data

    catch {
	tkMenuUnpost ""
    }
#   tkMbButtonUp $data(w:menubutton)
}

proc tixPopupMenu:BtnRelease {w rootX rootY} {
    upvar #0 $w data

    set cW [winfo containing -displayof $w $rootX $rootY]

    if {$data(-spring)} {
	tixPopupMenu:Unpost $w
    }
}

proc tixPopupMenu:Unmap {w} {
    upvar #0 $w data
    wm withdraw $w
}

proc tixPopupMenu:Destructor {w} {
    upvar #0 $w data

    foreach client $data(g:clients) {
	if {[winfo exists $client]} {
	    tixDeleteBindTag $client TixPopupMenu:$w
	}
    }

    # delete the extra bindings
    #
    foreach tag [list TixPopupMenu:MB:$w TixPopupMenu:M:$w] {
	foreach e [bind $tag] {
	    bind $tag $e ""
	}
    }

    tixChainMethod $w Destructor
}

proc tixPopupMenu:config-title {w value} {
    upvar #0 $w data

    $data(w:menubutton) config -text $value
}

#----------------------------------------------------------------------
# PublicMethods:
#----------------------------------------------------------------------
proc tixPopupMenu:bind {w args} {
    upvar #0 $w data

    foreach client $args {
	if {[lsearch $data(g:clients) $client] == -1} {
	    lappend data(g:clients) $client
	    tixAppendBindTag $client TixPopupMenu:$w
	}
    }
}

proc tixPopupMenu:unbind {w args} {
    upvar #0 $w data

    foreach client $args {
	if {[winfo exists $client]} {
	    set index [lsearch $data(g:clients) $client]
	    if {$index != -1} {
		tixDeleteBindTag $client TixPopupMenu:$w
		set data(g:clients) [lreplace $data(g:clients) $index $index]
	    }
	}
    }
}

proc tixPopupMenu:post {w client x y} {
    upvar #0 $w data
    global tkPriv

    if {$data(-state)  == "disabled"} {
	return
    }

    set rootx [expr $x + [winfo rootx $client]]
    set rooty [expr $y + [winfo rooty $client]]

    if {$data(-postcmd) != ""} {
	set ret [tixEvalCmdBinding $w $data(-postcmd) "" $rootx $rooty]
	if {![tixGetBoolean $ret]} {
	    return
	}
    }

    if {[string is true -strict $data(-installcolormap)]} {
	wm colormapwindows . $w
    }


    set menuWidth [winfo reqwidth $data(w:menu)]
    set width     [winfo reqwidth  $w]
    set height    [winfo reqheight $w]

    if {$width < $menuWidth} {
	set width $menuWidth
    }

    set wx $rootx
    set wy $rooty

    # trick: the following lines allow the popup menu
    # acquire a stable width and height when it is finally
    # put on the visible screen. Advoid flashing
    #
    wm geometry $w +10000+10000
    wm deiconify $w
    raise $w

    update
    wm geometry $w ${width}x${height}+${wx}+${wy}
    update

    tkMbEnter $data(w:menubutton)
    tkMbPost $tkPriv(inMenubutton) $rootx $rooty
}
Bethany
Bethany
0%

THE FINEST HOTEL NEAR LAKE KIVU

The Perfect Base For You

Required fields are followed by *





EC1A68011

About Us

Delicious Interior With The Pinch Of Everything

Bethany Investment group is Presbyterian church in Rwanda(EPR) company that manage Hotel and Guest house in Karongi (Bethany Hotel), ISANO branch in GIKONDO(Kigali), Kiyovu branch(Kigali), AMIZERO branch(Nyagatare-East) and Gisenyi Branch(Rubavu).

Accomodation

Get a Comfortable Room
Feel The Comfort

Get a comfortable room and feel our hotel’s comfort. Bethany Hotel features a variety of fully furnished rooms with extra space, Executive rooms, Deluxe rooms with a beautiful lake view and garden space, Deluxe rooms, comfort rooms, family rooms and standard rooms at your service.

Standard Single

Services

We Provide Top Class Facility
Especially For You

Beach BBQ Party

Kick back on the beach& and enjoy our berbecue from our masterchef

Breakfast

Kick back at our hotels& enjoy our breakfast from our masterchef

Conference Hall

Kick back at our hotels& enjoy our conference halls from all bethany branches

Enjoy with your partner

Honeymoon Package

80%

Get In Touch

Don’t Miss Any Update

    +

    Search your Room

    Required fields are followed by *