Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

need a demo without kv language #4

Open
2 tasks
s0h3ck opened this issue May 7, 2018 · 0 comments
Open
2 tasks

need a demo without kv language #4

s0h3ck opened this issue May 7, 2018 · 0 comments

Comments

@s0h3ck
Copy link

s0h3ck commented May 7, 2018

Let's say we take the example in the README.md and we write it in Python (without kv language).

Two issues:

  • contextmenu stays when you click outside the contextmenu (for example, on the button)
    What I should be expected: it would be hidden when you click something that is not part of the menu.
  • on touch system doesn't stop at the contextmenu (the button gets triggered as well).
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.button import Button
from kivy.uix.label import Label

from kivy.garden.contextmenu import AppMenu, AppMenuTextItem, ContextMenu, ContextMenuTextItem

class Test(BoxLayout):

    def __init__(self, **kwargs):
        super(Test, self).__init__(**kwargs)

        layout = BoxLayout(orientation='vertical')

        app_menu = AppMenu(size_hint=(1, None), height=30)

        menu_item_1 = AppMenuTextItem(text="Menu kivy-garden/garden.contextmenu#1")
        menu_item_2 = AppMenuTextItem(text="Menu Menu Menu kivy-garden/garden.contextmenu#2")
        menu_item_3 = AppMenuTextItem(text="Menu Menu kivy-garden/garden.contextmenu#3")
        menu_item_4 = AppMenuTextItem(text="Menu kivy-garden/garden.contextmenu#4")
         
        app_menu.add_widget(menu_item_1)
        app_menu.add_widget(menu_item_2)
        app_menu.add_widget(menu_item_3)
        app_menu.add_widget(menu_item_4)

        context_menu_1 = ContextMenu()
        item_11 = ContextMenuTextItem(text="Item kivy-garden/garden.contextmenu#11")
        item_12 = ContextMenuTextItem(text="Item kivy-garden/garden.contextmenu#12")
         
        context_menu_2 = ContextMenu()
        item_21 = ContextMenuTextItem(text="Item #21")
        item_22 = ContextMenuTextItem(text="Item #22")
        item_23 = ContextMenuTextItem(text="ItemItemItem #23")
        item_24 = ContextMenuTextItem(text="Item #24")

        context_menu_3 = ContextMenu()
        item_241 = ContextMenuTextItem(text="Item #241")
        item_hel = ContextMenuTextItem(text="Hello, World!")
        item_005 = ContextMenuTextItem(text="Item kivy-garden/contextmenu#2")

        context_menu_1.add_widget(item_11)
        context_menu_1.add_widget(item_12)
        context_menu_2.add_widget(item_21)
        context_menu_2.add_widget(item_22)
        context_menu_2.add_widget(item_23)
        context_menu_2.add_widget(item_24)
        context_menu_3.add_widget(item_241)
        context_menu_3.add_widget(item_hel)
        context_menu_3.add_widget(item_005)

        menu_item_1.add_widget(context_menu_1)
        menu_item_2.add_widget(context_menu_2)
        menu_item_3.add_widget(context_menu_3)
        
        context_menu_1._on_visible(False)
        context_menu_2._on_visible(False)
        context_menu_3._on_visible(False)

        layout.add_widget(app_menu)
        button = Button(text="Button")
        layout.add_widget(button)
         
        layout.canvas.remove(button.canvas)
        layout.canvas.insert(0,button.canvas)

        self.add_widget(layout)

class TestApp(App):
    def build(self):
        return Test()

if __name__ == "__main__":
    app = TestApp()
    app.run()

Maybe we could take inspiration from NavigationDrawer to improve this garden repository. It could involve some changes.

We will appreciate any suggestions.

Thanks.

@AndreMiras AndreMiras transferred this issue from kivy-garden/garden.contextmenu Dec 10, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant