Move ncurses initialization
This commit is contained in:
parent
82eb1fcd6f
commit
5278c9a630
|
@ -10,68 +10,29 @@ app = "scion"
|
||||||
type = "core"
|
type = "core"
|
||||||
path = ""
|
path = ""
|
||||||
opt = []
|
opt = []
|
||||||
import curses
|
|
||||||
from bt.message import *
|
|
||||||
#from bt.needle import Needle
|
|
||||||
import bt.needle
|
|
||||||
|
|
||||||
|
from bt.message import *
|
||||||
import cline.loop
|
import cline.loop
|
||||||
import cline.message
|
import cline.message
|
||||||
import settings
|
import settings
|
||||||
|
|
||||||
global maxyx, stdscr, thread
|
|
||||||
|
|
||||||
|
|
||||||
# Called every time the plugin is enabled
|
# Called every time the plugin is enabled
|
||||||
def open():
|
def open():
|
||||||
write("Starting CLI", True)
|
write("Starting CLI", True)
|
||||||
global maxyx, stdscr, thread
|
# Tell settings to run this loop
|
||||||
# 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
|
|
||||||
settings.set("loop",cline.loop.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
|
# Called every time the plugin is stopped
|
||||||
def close():
|
def close():
|
||||||
global stdscr, thread
|
# Stop loop
|
||||||
|
|
||||||
settings.pop("write")
|
|
||||||
|
|
||||||
# Stop looping
|
|
||||||
cline.loop.quit()
|
cline.loop.quit()
|
||||||
settings.pop("loop")
|
settings.pop("loop")
|
||||||
|
|
||||||
# Undo ncurses initialization
|
|
||||||
curses.nocbreak()
|
|
||||||
curses.echo()
|
|
||||||
stdscr.keypad(0)
|
|
||||||
curses.endwin()
|
|
||||||
#thread.join()
|
|
||||||
write("CLI has been stopped", True)
|
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
|
# Called when the plugin needs to perform some action
|
||||||
|
|
|
@ -15,16 +15,60 @@ import settings
|
||||||
from addch import addch
|
from addch import addch
|
||||||
from message import *
|
from message import *
|
||||||
|
|
||||||
|
|
||||||
global halt
|
global halt
|
||||||
halt = False
|
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
|
# Loop around until the plugin manager calls shutdown
|
||||||
def loop():
|
def loop():
|
||||||
write("Beginning command line loop",True)
|
write("Beginning command line loop",True)
|
||||||
global halt
|
global halt
|
||||||
|
|
||||||
|
init()
|
||||||
|
|
||||||
stdscr = settings.get("stdscr")
|
stdscr = settings.get("stdscr")
|
||||||
input = settings.get("prompt")
|
input = settings.get("prompt")
|
||||||
(y, x) = settings.get("stdscr").getyx()
|
(y, x) = settings.get("stdscr").getyx()
|
||||||
|
@ -35,6 +79,3 @@ def loop():
|
||||||
disp(input)
|
disp(input)
|
||||||
|
|
||||||
|
|
||||||
def quit():
|
|
||||||
global halt
|
|
||||||
halt = True
|
|
|
@ -2,4 +2,4 @@ __author__="bjschuma"
|
||||||
__date__ ="$Jan 6, 2010 9:52:21 PM$"
|
__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
|
import gtk
|
||||||
from manager import manager
|
from manager import manager
|
||||||
|
import settings
|
||||||
|
|
||||||
|
|
||||||
def quit(a,b):
|
def quit(a,b):
|
||||||
manager.run("exit")
|
manager.run("exit")
|
||||||
|
|
||||||
|
|
||||||
class Window(gtk.Window):
|
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)
|
gtk.Window.__init__(self,type)
|
||||||
self.set_title(title)
|
self.set_title(title)
|
||||||
self.connect("delete_event",quit)
|
self.connect("delete_event",quit)
|
||||||
|
manager.run("sgtk", (name,self))
|
||||||
|
|
||||||
if not (icon == None):
|
if not (icon == None):
|
||||||
self.set_icon_from_file(icon)
|
self.set_icon_from_file(icon)
|
||||||
|
@ -25,5 +28,8 @@ class Window(gtk.Window):
|
||||||
self.show()
|
self.show()
|
||||||
|
|
||||||
|
|
||||||
|
def quit(self,func):
|
||||||
|
self.connect("delete_event",func)
|
||||||
|
|
||||||
#def quit(self,a,b):
|
#def quit(self,a,b):
|
||||||
# manager.run("exit")
|
# manager.run("exit")
|
||||||
|
|
|
@ -21,19 +21,35 @@ global running
|
||||||
running = False
|
running = False
|
||||||
from manager import manager
|
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
|
# Called when the plugin needs to perform some action
|
||||||
def run(args=None):
|
def run(args=None):
|
||||||
running = settings.get("guirunning")
|
if args == None:
|
||||||
win = window.Window("Scion")
|
running = settings.get("guirunning")
|
||||||
|
|
||||||
# Start gtk main
|
# Main window
|
||||||
if running == False:
|
win = window.Window("Scion", "gui")
|
||||||
manager.run("disable", ["cli"] )
|
|
||||||
settings.set("guirunning",True)
|
# Horizontal box
|
||||||
#if settings.has("loop") == False:
|
box = HBox("MainBox")
|
||||||
gtk.main()
|
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():
|
def loop():
|
||||||
|
@ -50,6 +66,7 @@ def loop():
|
||||||
def open():
|
def open():
|
||||||
settings.init("guirunning",False)
|
settings.init("guirunning",False)
|
||||||
settings.set("loop",loop)
|
settings.set("loop",loop)
|
||||||
|
settings.init("gui",dict())
|
||||||
#if settings.get("guirunning") == True:
|
#if settings.get("guirunning") == True:
|
||||||
# run()
|
# run()
|
||||||
# settings.set("loop",gtk.main)
|
# settings.set("loop",gtk.main)
|
||||||
|
@ -60,6 +77,7 @@ def close():
|
||||||
running = settings.get("guirunning")
|
running = settings.get("guirunning")
|
||||||
if running == True:
|
if running == True:
|
||||||
gtk.main_quit()
|
gtk.main_quit()
|
||||||
|
settings.delete("gui")
|
||||||
|
|
||||||
|
|
||||||
#print loop
|
#print loop
|
||||||
|
|
Loading…
Reference in New Issue