Move ncurses initialization
This commit is contained in:
parent
82eb1fcd6f
commit
5278c9a630
|
@ -10,68 +10,29 @@ app = "scion"
|
|||
type = "core"
|
||||
path = ""
|
||||
opt = []
|
||||
import curses
|
||||
from bt.message import *
|
||||
#from bt.needle import Needle
|
||||
import bt.needle
|
||||
|
||||
from bt.message import *
|
||||
import cline.loop
|
||||
import cline.message
|
||||
import settings
|
||||
|
||||
global maxyx, stdscr, thread
|
||||
|
||||
|
||||
# Called every time the plugin is enabled
|
||||
def open():
|
||||
write("Starting CLI", True)
|
||||
global maxyx, stdscr, thread
|
||||
# Initialize ncurses screen
|
||||
stdscr = curses.initscr()
|
||||
maxyx = stdscr.getmaxyx()
|
||||
curses.cbreak()
|
||||
curses.noecho()
|
||||
stdscr.keypad(1)
|
||||
|
||||
# Set these values in settings class for use elsewhere
|
||||
settings.set("stdscr", stdscr)
|
||||
settings.set("maxyx", maxyx)
|
||||
settings.set("prompt", ">>> ")
|
||||
settings.set("clinex", 0)
|
||||
settings.set("cliney", 0)
|
||||
|
||||
# Start loop in new thread
|
||||
# Tell settings to run this loop
|
||||
settings.set("loop",cline.loop.loop)
|
||||
#thread = bt.needle.Needle(cline.loop.loop)
|
||||
#thread.start()
|
||||
|
||||
settings.set("write", cline.message.insert)
|
||||
|
||||
|
||||
# Called every time the plugin is stopped
|
||||
def close():
|
||||
global stdscr, thread
|
||||
|
||||
settings.pop("write")
|
||||
|
||||
# Stop looping
|
||||
# Stop loop
|
||||
cline.loop.quit()
|
||||
settings.pop("loop")
|
||||
|
||||
# Undo ncurses initialization
|
||||
curses.nocbreak()
|
||||
curses.echo()
|
||||
stdscr.keypad(0)
|
||||
curses.endwin()
|
||||
#thread.join()
|
||||
write("CLI has been stopped", True)
|
||||
|
||||
# Delete keys that settings no longer needs
|
||||
settings.delete("stdscr")
|
||||
settings.delete("maxyx")
|
||||
settings.delete("prompt")
|
||||
settings.delete("clinex")
|
||||
settings.delete("cliney")
|
||||
|
||||
|
||||
# Called when the plugin needs to perform some action
|
||||
|
|
|
@ -15,16 +15,60 @@ import settings
|
|||
from addch import addch
|
||||
from message import *
|
||||
|
||||
|
||||
global halt
|
||||
halt = False
|
||||
|
||||
|
||||
|
||||
def init():
|
||||
# Initialize ncurses screen
|
||||
stdscr = curses.initscr()
|
||||
maxyx = stdscr.getmaxyx()
|
||||
curses.cbreak()
|
||||
curses.noecho()
|
||||
stdscr.keypad(1)
|
||||
|
||||
# Set these values in settings class for use elsewhere
|
||||
settings.set("stdscr", stdscr)
|
||||
settings.set("maxyx", maxyx)
|
||||
settings.set("prompt", ">>> ")
|
||||
settings.set("clinex", 0)
|
||||
settings.set("cliney", 0)
|
||||
settings.set("write", insert)
|
||||
|
||||
|
||||
|
||||
def quit():
|
||||
# Halt our loop
|
||||
global halt
|
||||
halt = True
|
||||
|
||||
# Undo ncurses initialization
|
||||
curses.nocbreak()
|
||||
curses.echo()
|
||||
settings.get("stdscr").keypad(0)
|
||||
#stdscr.keypad(0)
|
||||
curses.endwin()
|
||||
|
||||
# Delete keys that settings no longer needs
|
||||
settings.delete("stdscr")
|
||||
settings.delete("maxyx")
|
||||
settings.delete("prompt")
|
||||
settings.delete("clinex")
|
||||
settings.delete("cliney")
|
||||
|
||||
# Return to previous write function
|
||||
settings.pop("write")
|
||||
|
||||
|
||||
|
||||
# Loop around until the plugin manager calls shutdown
|
||||
def loop():
|
||||
write("Beginning command line loop",True)
|
||||
global halt
|
||||
|
||||
init()
|
||||
|
||||
stdscr = settings.get("stdscr")
|
||||
input = settings.get("prompt")
|
||||
(y, x) = settings.get("stdscr").getyx()
|
||||
|
@ -35,6 +79,3 @@ def loop():
|
|||
disp(input)
|
||||
|
||||
|
||||
def quit():
|
||||
global halt
|
||||
halt = True
|
|
@ -2,4 +2,4 @@ __author__="bjschuma"
|
|||
__date__ ="$Jan 6, 2010 9:52:21 PM$"
|
||||
|
||||
|
||||
__all__ = ["button","window"]
|
||||
__all__ = ["box", "button", "window"]
|
|
@ -0,0 +1,23 @@
|
|||
#! /usr/bin/python
|
||||
|
||||
# To change this template, choose Tools | Templates
|
||||
# and open the template in the editor.
|
||||
|
||||
__author__="bjschuma"
|
||||
__date__ ="$Jan 8, 2010 12:17:55 AM$"
|
||||
|
||||
import gtk
|
||||
from manager import manager
|
||||
|
||||
class HBox(gtk.HBox):
|
||||
def __init__(self, name, homogeneous=False, spacing=0):
|
||||
gtk.HBox.__init__(homogeneous, spacing)
|
||||
manager.run("sgtk", (name,self))
|
||||
self.show()
|
||||
|
||||
|
||||
class VBox(gtk.VBox):
|
||||
def __init__(self, name, homogeneous=False, spacing=0):
|
||||
gtk.VBox.__init__(homogeneous, spacing)
|
||||
manager.run("sgtk", (name,self))
|
||||
self.show()
|
|
@ -8,16 +8,19 @@ __date__ ="$Jan 6, 2010 10:07:31 PM$"
|
|||
|
||||
import gtk
|
||||
from manager import manager
|
||||
import settings
|
||||
|
||||
|
||||
def quit(a,b):
|
||||
manager.run("exit")
|
||||
|
||||
|
||||
class Window(gtk.Window):
|
||||
def __init__(self, title, type=gtk.WINDOW_TOPLEVEL, icon=None):
|
||||
def __init__(self, title, name, type=gtk.WINDOW_TOPLEVEL, icon=None):
|
||||
gtk.Window.__init__(self,type)
|
||||
self.set_title(title)
|
||||
self.connect("delete_event",quit)
|
||||
manager.run("sgtk", (name,self))
|
||||
|
||||
if not (icon == None):
|
||||
self.set_icon_from_file(icon)
|
||||
|
@ -25,5 +28,8 @@ class Window(gtk.Window):
|
|||
self.show()
|
||||
|
||||
|
||||
def quit(self,func):
|
||||
self.connect("delete_event",func)
|
||||
|
||||
#def quit(self,a,b):
|
||||
# manager.run("exit")
|
||||
|
|
|
@ -21,19 +21,35 @@ global running
|
|||
running = False
|
||||
from manager import manager
|
||||
|
||||
#global thread
|
||||
|
||||
def register(name, object):
|
||||
gui = settings.get("gui")
|
||||
gui[name] = object
|
||||
|
||||
|
||||
# Called when the plugin needs to perform some action
|
||||
def run(args=None):
|
||||
running = settings.get("guirunning")
|
||||
win = window.Window("Scion")
|
||||
if args == None:
|
||||
running = settings.get("guirunning")
|
||||
|
||||
# Start gtk main
|
||||
if running == False:
|
||||
manager.run("disable", ["cli"] )
|
||||
settings.set("guirunning",True)
|
||||
#if settings.has("loop") == False:
|
||||
gtk.main()
|
||||
# Main window
|
||||
win = window.Window("Scion", "gui")
|
||||
|
||||
# Horizontal box
|
||||
box = HBox("MainBox")
|
||||
win.add(box)
|
||||
|
||||
|
||||
|
||||
# Start gtk main
|
||||
if running == False:
|
||||
manager.run("disable", ["cli"] )
|
||||
settings.set("guirunning",True)
|
||||
#if settings.has("loop") == False:
|
||||
gtk.main()
|
||||
else:
|
||||
if len(args) == 2:
|
||||
register(args[0],args[1])
|
||||
|
||||
|
||||
def loop():
|
||||
|
@ -50,6 +66,7 @@ def loop():
|
|||
def open():
|
||||
settings.init("guirunning",False)
|
||||
settings.set("loop",loop)
|
||||
settings.init("gui",dict())
|
||||
#if settings.get("guirunning") == True:
|
||||
# run()
|
||||
# settings.set("loop",gtk.main)
|
||||
|
@ -60,6 +77,7 @@ def close():
|
|||
running = settings.get("guirunning")
|
||||
if running == True:
|
||||
gtk.main_quit()
|
||||
settings.delete("gui")
|
||||
|
||||
|
||||
#print loop
|
||||
|
|
Loading…
Reference in New Issue