organisation
git-svn-id: file:///home/svn/framework3/trunk@4904 4d416f70-5f16-0410-b530-b9f4589650daunstable
parent
244abb6ae0
commit
9f9cae075d
|
@ -0,0 +1,25 @@
|
||||||
|
module Msf
|
||||||
|
module Ui
|
||||||
|
module Gtk2
|
||||||
|
|
||||||
|
class MsfDialog
|
||||||
|
##
|
||||||
|
# Display an error Gtk style
|
||||||
|
# parent: the Gtk parent widget
|
||||||
|
# title: the error title
|
||||||
|
# message: the error
|
||||||
|
##
|
||||||
|
class Error < Msf::Ui::Gtk2::SkeletonAlert
|
||||||
|
def initialize(parent, title, message=nil)
|
||||||
|
super(parent, title, Gtk::Stock::DIALOG_ERROR,
|
||||||
|
[[Gtk::Stock::OK, Gtk::Dialog::RESPONSE_OK]],
|
||||||
|
message)
|
||||||
|
self.default_response = Gtk::Dialog::RESPONSE_OK
|
||||||
|
show_all and run
|
||||||
|
destroy
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,61 @@
|
||||||
|
module Msf
|
||||||
|
module Ui
|
||||||
|
module Gtk2
|
||||||
|
|
||||||
|
class MsfDialog
|
||||||
|
|
||||||
|
##
|
||||||
|
# Class for the payload rendering
|
||||||
|
# title: the payload refname
|
||||||
|
# payload: the generated payload
|
||||||
|
##
|
||||||
|
class Payload < Msf::Ui::Gtk2::SkeletonView
|
||||||
|
def initialize(title, payload)
|
||||||
|
@buffer = Gtk::TextBuffer.new
|
||||||
|
super(title, @buffer)
|
||||||
|
|
||||||
|
colorize()
|
||||||
|
display(payload)
|
||||||
|
|
||||||
|
self.default_response = Gtk::Dialog::RESPONSE_NONE
|
||||||
|
show_all and run
|
||||||
|
destroy
|
||||||
|
end
|
||||||
|
|
||||||
|
#
|
||||||
|
# Display the generated payload with color
|
||||||
|
#
|
||||||
|
def display(payload)
|
||||||
|
filter = /^\#/
|
||||||
|
@buffer.delete(*@buffer.bounds)
|
||||||
|
start = @buffer.get_iter_at_offset(0)
|
||||||
|
|
||||||
|
payload.each do |line|
|
||||||
|
if ( line.match(filter) )
|
||||||
|
@buffer.insert_with_tags(start, line, 'comments')
|
||||||
|
else
|
||||||
|
@buffer.insert_with_tags(start, line, '_')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
#
|
||||||
|
# Create tags for the syntax color
|
||||||
|
#
|
||||||
|
def colorize
|
||||||
|
@buffer.create_tag("comments",
|
||||||
|
:'foreground' => 'RosyBrown',
|
||||||
|
:'weight' => Pango::FontDescription::WEIGHT_BOLD
|
||||||
|
)
|
||||||
|
|
||||||
|
@buffer.create_tag("_",
|
||||||
|
:'weight' => Pango::FontDescription::WEIGHT_BOLD
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,42 @@
|
||||||
|
module Msf
|
||||||
|
module Ui
|
||||||
|
module Gtk2
|
||||||
|
|
||||||
|
class SkeletonAlert < Gtk::Dialog
|
||||||
|
def initialize(parent, title, stock_icon, buttons, message=nil)
|
||||||
|
super("", parent, Gtk::Dialog::DESTROY_WITH_PARENT, *buttons)
|
||||||
|
|
||||||
|
self.border_width = 6
|
||||||
|
self.resizable = false
|
||||||
|
self.has_separator = false
|
||||||
|
self.vbox.spacing = 12
|
||||||
|
|
||||||
|
hbox = Gtk::HBox.new(false, 12)
|
||||||
|
hbox.border_width = 6
|
||||||
|
self.vbox.pack_start(hbox)
|
||||||
|
|
||||||
|
image = Gtk::Image.new(stock_icon, Gtk::IconSize::DIALOG)
|
||||||
|
image.set_alignment(0.5, 0)
|
||||||
|
hbox.pack_start(image)
|
||||||
|
|
||||||
|
vbox = Gtk::VBox.new(false, 6)
|
||||||
|
hbox.pack_start(vbox)
|
||||||
|
|
||||||
|
label = Gtk::Label.new
|
||||||
|
label.set_alignment(0, 0)
|
||||||
|
label.wrap = true
|
||||||
|
label.markup = "<b><big>#{title}</big></b>"
|
||||||
|
vbox.pack_start(label)
|
||||||
|
|
||||||
|
if message
|
||||||
|
label = Gtk::Label.new
|
||||||
|
label.markup = message.strip
|
||||||
|
label.set_alignment(0, 0)
|
||||||
|
label.wrap = true
|
||||||
|
vbox.pack_start(label)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,24 @@
|
||||||
|
module Msf
|
||||||
|
module Ui
|
||||||
|
module Gtk2
|
||||||
|
|
||||||
|
class SkeletonView < Gtk::Dialog
|
||||||
|
def initialize(title, buffer)
|
||||||
|
super(title, $gtk2driver.main, Gtk::Dialog::Flags::MODAL,
|
||||||
|
[ Gtk::Stock::CLOSE, Gtk::Dialog::RESPONSE_NONE ])
|
||||||
|
|
||||||
|
self.border_width = 10
|
||||||
|
self.vbox.spacing = 10
|
||||||
|
self.set_default_size(400, 350)
|
||||||
|
|
||||||
|
view = Gtk::TextView.new(buffer)
|
||||||
|
scrolled_window = Gtk::ScrolledWindow.new
|
||||||
|
scrolled_window.add(view)
|
||||||
|
self.vbox.pack_start(scrolled_window, true, true, 5)
|
||||||
|
scrolled_window.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,134 +1,4 @@
|
||||||
module Msf
|
require 'msf/ui/gtk2/dialog/skeleton_view'
|
||||||
module Ui
|
require 'msf/ui/gtk2/dialog/skeleton_alert'
|
||||||
module Gtk2
|
require 'msf/ui/gtk2/dialog/payload'
|
||||||
|
require 'msf/ui/gtk2/dialog/error'
|
||||||
class SkeletonAlert < Gtk::Dialog
|
|
||||||
def initialize(parent, title, stock_icon, buttons, message=nil)
|
|
||||||
super("", parent, Gtk::Dialog::DESTROY_WITH_PARENT, *buttons)
|
|
||||||
|
|
||||||
self.border_width = 6
|
|
||||||
self.resizable = false
|
|
||||||
self.has_separator = false
|
|
||||||
self.vbox.spacing = 12
|
|
||||||
|
|
||||||
hbox = Gtk::HBox.new(false, 12)
|
|
||||||
hbox.border_width = 6
|
|
||||||
self.vbox.pack_start(hbox)
|
|
||||||
|
|
||||||
image = Gtk::Image.new(stock_icon,
|
|
||||||
Gtk::IconSize::DIALOG)
|
|
||||||
image.set_alignment(0.5, 0)
|
|
||||||
hbox.pack_start(image)
|
|
||||||
|
|
||||||
vbox = Gtk::VBox.new(false, 6)
|
|
||||||
hbox.pack_start(vbox)
|
|
||||||
|
|
||||||
label = Gtk::Label.new
|
|
||||||
label.set_alignment(0, 0)
|
|
||||||
label.wrap = true
|
|
||||||
label.markup = "<b><big>#{title}</big></b>"
|
|
||||||
vbox.pack_start(label)
|
|
||||||
|
|
||||||
if message
|
|
||||||
label = Gtk::Label.new
|
|
||||||
label.markup = message.strip
|
|
||||||
label.set_alignment(0, 0)
|
|
||||||
label.wrap = true
|
|
||||||
vbox.pack_start(label)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
class SkeletonView < Gtk::Dialog
|
|
||||||
def initialize(title, buffer)
|
|
||||||
super(title, $gtk2driver.main, Gtk::Dialog::Flags::MODAL,
|
|
||||||
[ Gtk::Stock::CLOSE, Gtk::Dialog::RESPONSE_NONE ])
|
|
||||||
|
|
||||||
self.border_width = 10
|
|
||||||
self.vbox.spacing = 10
|
|
||||||
self.set_default_size(400, 350)
|
|
||||||
|
|
||||||
view = Gtk::TextView.new(buffer)
|
|
||||||
scrolled_window = Gtk::ScrolledWindow.new
|
|
||||||
scrolled_window.add(view)
|
|
||||||
self.vbox.pack_start(scrolled_window, true, true, 5)
|
|
||||||
scrolled_window.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
##
|
|
||||||
# Class and subclass for all MsfDialog
|
|
||||||
##
|
|
||||||
class MsfDialog
|
|
||||||
|
|
||||||
##
|
|
||||||
# Class for the payload rendering
|
|
||||||
# title: the payload refname
|
|
||||||
# payload: the generated payload
|
|
||||||
##
|
|
||||||
class Payload < Msf::Ui::Gtk2::SkeletonView
|
|
||||||
def initialize(title, payload)
|
|
||||||
@buffer = Gtk::TextBuffer.new
|
|
||||||
super(title, @buffer)
|
|
||||||
|
|
||||||
colorize()
|
|
||||||
display(payload)
|
|
||||||
|
|
||||||
self.default_response = Gtk::Dialog::RESPONSE_NONE
|
|
||||||
show_all and run
|
|
||||||
destroy
|
|
||||||
end
|
|
||||||
|
|
||||||
#
|
|
||||||
# Display the generated payload with color
|
|
||||||
#
|
|
||||||
def display(payload)
|
|
||||||
filter = /^\#/
|
|
||||||
@buffer.delete(*@buffer.bounds)
|
|
||||||
start = @buffer.get_iter_at_offset(0)
|
|
||||||
|
|
||||||
payload.each do |line|
|
|
||||||
if ( line.match(filter) )
|
|
||||||
@buffer.insert_with_tags(start, line, 'comments')
|
|
||||||
else
|
|
||||||
@buffer.insert_with_tags(start, line, '_')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
#
|
|
||||||
# Create tags for the syntax color
|
|
||||||
#
|
|
||||||
def colorize
|
|
||||||
@buffer.create_tag("comments",
|
|
||||||
:'foreground' => 'RosyBrown',
|
|
||||||
:'weight' => Pango::FontDescription::WEIGHT_BOLD
|
|
||||||
)
|
|
||||||
|
|
||||||
@buffer.create_tag("_",
|
|
||||||
:'weight' => Pango::FontDescription::WEIGHT_BOLD
|
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
##
|
|
||||||
# Display an error Gtk style
|
|
||||||
# parent: the Gtk parent widget
|
|
||||||
# title: the error title
|
|
||||||
# message: the error
|
|
||||||
##
|
|
||||||
class Error < Msf::Ui::Gtk2::SkeletonAlert
|
|
||||||
def initialize(parent, title, message=nil)
|
|
||||||
super(parent, title, Gtk::Stock::DIALOG_ERROR,
|
|
||||||
[[Gtk::Stock::OK, Gtk::Dialog::RESPONSE_OK]],
|
|
||||||
message)
|
|
||||||
self.default_response = Gtk::Dialog::RESPONSE_OK
|
|
||||||
show_all and run
|
|
||||||
destroy
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
Loading…
Reference in New Issue