albow package

Submodules

albow.controls module

class albow.controls.AttrRef(obj, attr)[source]

Bases: object

get()[source]
set(x)[source]
class albow.controls.Button(text, action=None, enable=None, rightClickAction=None, **kwds)[source]

Bases: albow.controls.ButtonBase, albow.controls.Label

class albow.controls.ButtonBase[source]

Bases: albow.controls.Control

action = None
align = 'c'
mouse_down(event)[source]
mouse_drag(event)[source]
mouse_up(event)[source]
rightClickAction = None
class albow.controls.CheckBox(**kwds)[source]

Bases: albow.controls.CheckControl, albow.controls.CheckWidget

class albow.controls.CheckControl[source]

Bases: albow.controls.Control

get_highlighted()[source]
mouse_down(e)[source]
class albow.controls.CheckWidget(**kwds)[source]

Bases: albow.widget.Widget

border_width = 1
check_mark_tweak = 2
default_size = (16, 16)
draw(surf)[source]
margin = 4
class albow.controls.Control[source]

Bases: object

enable = None
enabled
get_enabled()[source]
get_highlighted()[source]
get_value()[source]
highlighted
ref = None
set_enabled(x)[source]
set_value(x)[source]
value
class albow.controls.GLLabel(text, width=None, base_text=None, **kwds)[source]

Bases: albow.controls.Label

class albow.controls.Image(image=None, rect=None, prefix='', **kwds)[source]

Bases: albow.widget.Widget

draw(surf)[source]
get_image()[source]
highlighted = False
image
set_image(x)[source]
class albow.controls.ImageButton(image=None, rect=None, prefix='', **kwds)[source]

Bases: albow.controls.ButtonBase, albow.controls.Image

class albow.controls.ItemRef(obj, item)[source]

Bases: object

get()[source]
set(x)[source]
class albow.controls.Label(text, width=None, base_text=None, **kwds)[source]

Bases: albow.widget.Widget

align
calc_size()[source]
draw(surface)[source]
draw_with(surface, fg, bg=None)[source]
enabled = True
get_align()[source]
get_text()[source]
get_update_translation()[source]
highlighted = False
is_default = False
set_align(x)[source]
set_text(x, doNotTranslate=False)[source]
set_update_ui(v)[source]
text
class albow.controls.RadioButton(**kwds)[source]

Bases: albow.controls.RadioControl, albow.controls.CheckWidget

class albow.controls.RadioControl[source]

Bases: albow.controls.Control

get_highlighted()[source]
mouse_down(e)[source]
setting = None
class albow.controls.RotatableImage(angle=0.0, min_angle=0, max_angle=360, **kwds)[source]

Bases: albow.controls.Image

add_angle(angle)[source]
draw(surf)[source]
get_angle()[source]
set_angle(angle)[source]
class albow.controls.SmallLabel(text, width=None, base_text=None, **kwds)[source]

Bases: albow.controls.Label

Small text size. See theme.py

class albow.controls.SmallValueDisplay(width=100, **kwds)[source]

Bases: albow.controls.ValueDisplay

class albow.controls.ValueButton(width=100, **kwds)[source]

Bases: albow.controls.ButtonBase, albow.controls.ValueDisplay

align = 'c'
get_text()[source]
class albow.controls.ValueDisplay(width=100, **kwds)[source]

Bases: albow.controls.Control, albow.controls.Label

align = 'l'
format = '%s'
format_value(value)[source]
get_text()[source]

albow.dialogs module

class albow.dialogs.Dialog(client=None, responses=None, default=0, cancel=-1, **kwds)[source]

Bases: albow.dialogs.Modal, albow.widget.Widget

click_outside_response = None
key_down(e)[source]
key_up(e)[source]
mouse_down(e)[source]
class albow.dialogs.Modal[source]

Bases: object

cancel()[source]
cancel_response = False
enter_response = True
ok()[source]
class albow.dialogs.QuickDialog(client=None, responses=None, default=0, cancel=-1, **kwds)[source]

Bases: albow.dialogs.Dialog

Dialog that closes as soon as you click outside or press a key

key_down(evt)[source]
mouse_down(evt)[source]
albow.dialogs.alert(mess, **kwds)[source]
albow.dialogs.ask(mess, responses=['OK', 'Cancel'], default=0, cancel=-1, wrap_width=60, **kwds)[source]
albow.dialogs.input_text(prompt, width, initial=None, **kwds)[source]
albow.dialogs.input_text_buttons(prompt, width, initial=None, allowed_chars=None, **kwds)[source]
albow.dialogs.wrapped_label(text, wrap_width, **kwds)[source]

albow.extended_widgets module

albow.extended_widgets.BasicTextInputRow(title, *args, **kw)[source]
albow.extended_widgets.CheckBoxLabel(title, *args, **kw)[source]
class albow.extended_widgets.ChoiceButton(choices, scrolling=True, scroll_items=30, **kw)[source]

Bases: albow.controls.ValueButton

align = 'c'
calc_size()[source]
calc_width()[source]
choices
choose = None
get_value()[source]
selectedChoice
set_update_ui(v)[source]
showMenu()[source]
albow.extended_widgets.FloatInputRow(title, *args, **kw)[source]
class albow.extended_widgets.HotkeyColumn(items, keysColumn=None, buttonsColumn=None, item_spacing=None, translateButtons=True)[source]

Bases: albow.widget.Widget

buildWidgets()[source]
is_gl_container = True
set_update_ui(v)[source]
albow.extended_widgets.IntInputRow(title, *args, **kw)[source]
class albow.extended_widgets.MenuButton(title, choices, **kw)[source]

Bases: albow.controls.Button

action()[source]
menu_picked(index)[source]
albow.extended_widgets.TextInputRow(title, *args, **kw)[source]
albow.extended_widgets.showProgress(progressText, progressIterator, cancel=False)[source]

Show the progress for a long-running synchronous operation. progressIterator should be a generator-like object that can return either None, for an indeterminate indicator, A float value between 0.0 and 1.0 for a determinate indicator, A string, to update the progress info label or a tuple of (float value, string) to set the progress and update the label

albow.fields module

class albow.fields.Field(width=None, **kwds)[source]

Bases: albow.controls.Control, albow.fields.TextEditor

attention_lost()[source]
clamp_value(value)[source]
commit(notify=False)[source]
empty = NotImplemented
enter_action()[source]
enter_passes = False
escape_action()[source]
format = u'%s'
format_value(x)[source]
get_text()[source]
max = None
min = None
set_text(text)[source]
should_commit_immediately(text)[source]
class albow.fields.FieldWrapped(width=None, lines=1, allowed_chars=None, **kwds)[source]

Bases: albow.controls.Control, albow.fields.TextEditorWrapped

attention_lost()[source]
clamp_value(value)[source]
commit(notify=False)[source]
empty = ''
enter_action()[source]
enter_passes = False
escape_action()[source]
format = u'%s'
format_value(x)[source]
get_text()[source]
max = None
min = None
set_text(text)[source]
static should_commit_immediately(text)[source]
class albow.fields.FloatField(width=None, **kwds)[source]

Bases: albow.fields.Field

allow_char(c)[source]
allowed_chars = '-+.0123456789'
decrease_value()[source]
increase_value()[source]
increment
mouse_down(evt)[source]
tooltipText = u'Point here and use mousewheel to adjust'
type

alias of float

zero = 1e-12
class albow.fields.IntField(width=None, **kwds)[source]

Bases: albow.fields.Field

allow_char(c)[source]
allowed_chars = '-+*/<>()0123456789'
decrease_value()[source]
increase_value()[source]
increment
mouse_down(evt)[source]
should_commit_immediately(text)[source]
tooltipText = u'Point here and use mousewheel to adjust'
static type(i)[source]
class albow.fields.TextEditor(width, upper=None, **kwds)[source]

Bases: albow.widget.Widget

addUndo()[source]
allow_char(c)[source]
change_text(text)[source]
draw(surface)[source]
escape_action(*args)[source]
get_text()[source]
get_text_and_insertion_point()[source]
insert_char(c, k=None)[source]
key_down(event)[source]
key_up(event)[source]
mouse_down(e)[source]
move_insertion_point(d)[source]
pos_to_index(x)[source]
set_text(text)[source]
tab_stop = True
text
upper = False
class albow.fields.TextEditorWrapped(width, lines, upper=None, allowed_chars=None, **kwds)[source]

Bases: albow.widget.Widget

addUndo()[source]
allow_char(c)[source]
change_text(text)[source]
draw(surface)[source]
escape_action(*args, **kwargs)[source]
get_char_position(i)[source]
get_text()[source]
get_text_and_insertion_data()[source]
get_text_and_insertion_point()[source]
insert_char(c, k=None)[source]
key_down(event)[source]
key_up(event)[source]
mouse_down(e)[source]
mouse_drag(e)[source]
move_insertion_line(d)[source]
move_insertion_point(d)[source]
pos_to_index(x, y)[source]
scroll_down()[source]
scroll_down_all()[source]
scroll_up()[source]
scroll_up_all()[source]
set_text(text)[source]
sync_insertion_line()[source]
sync_insertion_step()[source]
sync_line_and_step()[source]
tab_stop = True
text
textL = []
textRefList = []
updateTextWrap()[source]
upper = False
class albow.fields.TextField(width=None, **kwds)[source]

Bases: albow.fields.Field

should_commit_immediately(text)[source]
type

alias of unicode

class albow.fields.TextFieldWrapped(width=None, lines=1, allowed_chars=None, **kwds)[source]

Bases: albow.fields.FieldWrapped

type

alias of unicode

class albow.fields.TimeField(width=None, **kwds)[source]

Bases: albow.fields.Field

allow_char(c)[source]
allowed_chars = ':0123456789 APMapm'
format_value(hm)[source]
mouse_down(evt)[source]
set_value(v)[source]
static type(i)[source]

albow.file_dialogs module

TODO:

  • Implement Windows support.
class albow.file_dialogs.DirPathView(width, client, **kwds)[source]

Bases: albow.widget.Widget

draw(surf)[source]
class albow.file_dialogs.FSTree(client, *args, **kwargs)[source]

Bases: albow.tree.Tree

deploy(id)[source]
get_item_path(item)[source]
parse_path(name, path)[source]
select_item(n)[source]
set_directory(directory)[source]
show_menu(*args, **kwargs)[source]
class albow.file_dialogs.FileDialog(prompt=None, suffixes=None, **kwds)[source]

Bases: albow.dialogs.Dialog

box_width = 450
cancel()[source]
default_prompt = None
dir_box_click(double)[source]
directory
enter_action()[source]
filter(path)[source]
get_directory()[source]
go_up()[source]
key_down(evt)[source]
ok()[source]
set_directory(x)[source]
update()[source]
update_filename()[source]
class albow.file_dialogs.FileListView(width, client, **kwds)[source]

Bases: albow.scrollpanel.ScrollPanel

click_item(item_no, e)[source]
get_selected_name()[source]
item_is_selected(item_no)[source]
num_items()[source]
scroll_to_item(*args, **kwargs)[source]
update()[source]
class albow.file_dialogs.FileOpenDialog(prompt=None, suffixes=None, **kwds)[source]

Bases: albow.file_dialogs.FileDialog

double_click_file(name)[source]
get_pathname()[source]
item_is_choosable(path)[source]
ok_enable()[source]
ok_label = 'Open'
pathname
saving = False
class albow.file_dialogs.FileSaveDialog(prompt=None, suffixes=None, **kwds)[source]

Bases: albow.file_dialogs.FileDialog

default_prompt = 'Save as:'
double_click_file(name)[source]
filename
get_filename()[source]
get_pathname()[source]
ok()[source]
ok_enable()[source]
ok_label = 'Save'
pathname
saving = True
set_filename(x)[source]
update()[source]
class albow.file_dialogs.LookForFileDialog(target, **kwds)[source]

Bases: albow.file_dialogs.FileOpenDialog

filter(name)[source]
item_is_choosable(path)[source]
target = None
albow.file_dialogs.get_imgs()[source]

Load an return the images used as file and folder icons.

albow.file_dialogs.get_platform_root_dir()[source]
albow.file_dialogs.look_for_file_or_directory(target, prompt=None, directory=None)[source]
albow.file_dialogs.request_new_filename(prompt=None, suffix=None, extra_suffixes=None, directory=None, filename=None, pathname=None)[source]
albow.file_dialogs.request_old_filename(suffixes=None, directory=None)[source]

albow.file_opener module

class albow.file_opener.FileOpener(mcedit, *args, **kwargs)[source]

Bases: albow.widget.Widget

buildWidgets()[source]
createLoadButtonHandler(filename)[source]
createNewWorld()[source]
gl_draw_self(root, offset)[source]
idleevent(evt)[source]
is_gl_container = True
key_down(evt)[source]
promptOpenAndLoad()[source]
set_update_ui(v)[source]

albow.grid_view module

class albow.grid_view.GridView(cell_size, nrows, ncols, **kwds)[source]

Bases: albow.widget.Widget

cell_rect(row, col)[source]
click_cell(row, col, event)[source]
draw(surface)[source]
draw_cell(surface, row, col, rect)[source]
mouse_down(event)[source]

albow.image_array module

class albow.image_array.ImageArray(image, shape)[source]

Bases: object

get_rect()[source]
albow.image_array.get_image_array(name, shape, **kwds)[source]

albow.layout module

class albow.layout.Column(items, height=None, **kwds)[source]

Bases: albow.layout.RowOrColumn

align_map = {'c': (1, 'midtop', 'midbottom'), 'r': (2, 'topright', 'bottomright'), 'l': (0, 'topleft', 'bottomleft')}
axis = 'v'
crossways = 'width'
d = (0, 1)
longways = 'height'
class albow.layout.Frame(client, border_spacing=None, **kwds)[source]

Bases: albow.widget.Widget

border_width = 1
call_handler(name, *args)[source]
margin = 2
class albow.layout.Grid(rows, row_spacing=10, column_spacing=10, **kwds)[source]

Bases: albow.widget.Widget

class albow.layout.Row(items, width=None, **kwds)[source]

Bases: albow.layout.RowOrColumn

align_map = {'c': (1, 'midleft', 'midright'), 'b': (2, 'bottomleft', 'bottomright'), 't': (0, 'topleft', 'topright')}
axis = 'h'
crossways = 'height'
d = (1, 0)
longways = 'width'
class albow.layout.RowOrColumn(size, items, kwds)[source]

Bases: albow.widget.Widget

calc_size(_items=None)[source]
call_handler(name, *args)[source]

albow.menu module

class albow.menu.Menu(title, items, scrolling=False, scroll_items=30, scroll_page=5, handler=None, **kwds)[source]

Bases: albow.dialogs.Dialog

calc_size()[source]
can_scroll_down()[source]
can_scroll_up()[source]
click_outside_response = -1
static command_is_enabled(item, focus)[source]
draw(surf)[source]
draw_scroll_down_button(surface)[source]
draw_scroll_up_button(surface)[source]
find_enabled_item(e)[source]
find_item_for_key(e)[source]
get_command(i)[source]
invoke_item(i)[source]
mouse_down(event)[source]
mouse_drag(e)[source]
mouse_move(e)[source]
mouse_up(e)[source]
present(client, pos)[source]
scroll = 0
scroll_down()[source]
scroll_down_rect()[source]
scroll_up()[source]
scroll_up_rect()[source]
set_items(items)[source]
set_scroll_items(scroll_items)[source]
set_update_ui(v)[source]
class albow.menu.MenuItem(text='', command=None, doNotTranslate=False)[source]

Bases: object

alt = False
cmd_name = 'Ctrl '
enabled = False
keycode = None
keyname = ''
option_name = 'Alt '
shift = False

albow.menu_bar module

class albow.menu_bar.MenuBar(menus=None, width=0, **kwds)[source]

Bases: albow.widget.Widget

draw(surf)[source]
get_menus()[source]
handle_command_key(e)[source]
menus

List of Menu instances

mouse_down(e)[source]
set_menus(x)[source]
show_menu(menu, x)[source]

albow.music module

class albow.music.EnableMusicControl(**kwds)[source]

Bases: albow.controls.CheckBox

get_value()[source]
set_value(x)[source]
class albow.music.MusicOptionsDialog[source]

Bases: albow.dialogs.Dialog

class albow.music.MusicVolumeControl(**kwds)[source]

Bases: albow.widget.Widget

draw(surf)[source]
mouse_down(e)[source]
mouse_drag(e)[source]
class albow.music.PlayList(items, random=False, repeat=False)[source]

Bases: object

A collection of music filenames to be played sequentially or randomly. If random is true, items will be played in a random order. If repeat is true, the list will be repeated indefinitely, otherwise each item will only be played once.

next()[source]

Returns the next item to be played.

albow.music.change_music(new_music, repeat=False)[source]

Fade out any currently playing music and start playing the given music file.

albow.music.change_playlist(new_playlist)[source]

Fade out any currently playing music and start playing from the given playlist.

albow.music.get_music(*names, **kwds)[source]

Return the full pathname of a music file from the “music” resource subdirectory.

albow.music.get_music_enabled()[source]
albow.music.get_playlist(*names, **kwds)[source]
albow.music.jog_music()[source]

If no music is currently playing, start playing the next item from the current playlist.

albow.music.music_end()[source]
albow.music.set_music_enabled(state)[source]
albow.music.show_music_options_dialog()[source]
albow.music.start_next_music()[source]

Start playing the next item from the current playlist immediately.

albow.openglwidgets module

class albow.openglwidgets.GLOrtho(rect=None, xmin=-1, xmax=1, ymin=-1, ymax=1, near=-1, far=1, **kwds)[source]

Bases: albow.openglwidgets.GLViewport

setup_projection()[source]
class albow.openglwidgets.GLPerspective(rect=None, fovy=20, near=0.1, far=1000, **kwds)[source]

Bases: albow.openglwidgets.GLViewport

setup_projection()[source]
class albow.openglwidgets.GLPixelOrtho(rect=None, near=-1, far=1, **kwds)[source]

Bases: albow.openglwidgets.GLOrtho

class albow.openglwidgets.GLViewport(rect=None, **kwds)[source]

Bases: albow.widget.Widget

augment_mouse_event(event)[source]
gl_draw()[source]
gl_draw_self(root, offset)[source]
gl_draw_viewport()[source]
is_gl_container = True
setup_matrices()[source]
setup_modelview()[source]
setup_projection()[source]

albow.palette_view module

class albow.palette_view.PaletteView(cell_size, nrows, ncols, scrolling=False, **kwds)[source]

Bases: albow.grid_view.GridView

can_scroll_down()[source]
can_scroll_up()[source]
cell_to_item_no(row, col)[source]
click_cell(row, col, event)[source]
click_item(n, e)[source]
draw(surface)[source]
draw_cell(surface, row, col, rect)[source]
draw_item_and_highlight(surface, i, rect, highlight)[source]
draw_item_with(surface, i, rect, fg)[source]
draw_posthighlight(surface, i, rect)[source]
draw_prehighlight(surface, i, rect)[source]
draw_prehighlight_with(surface, i, rect, color)[source]
draw_scroll_down_button(surface)[source]
draw_scroll_up_button(surface)[source]
draw_scrollbar(surface)[source]
item_is_selected(n)[source]
items_per_page()[source]
mouse_down(event)[source]
mouse_drag(event)[source]
mouse_up(event)[source]
num_cols()[source]
num_rows()[source]
scroll_down(delta=1)[source]
scroll_down_rect()[source]
scroll_to_item(n)[source]
scroll_up(delta=1)[source]
scroll_up_rect()[source]
scrollbar_rect()[source]

albow.resource module

class albow.resource.DummySound[source]

Bases: object

fadeout(x)[source]
static get_length()[source]
static get_num_channels()[source]
static get_volume()[source]
play(*args)[source]
set_volume(x)[source]
stop()[source]
albow.resource.getCurLang()[source]
albow.resource.get_cursor(*names, **kwds)[source]
albow.resource.get_font(size, *names, **kwds)[source]
albow.resource.get_image(*names, **kwds)[source]
albow.resource.get_sound(*names, **kwds)[source]
albow.resource.get_text(*names, **kwds)[source]
albow.resource.load_cursor(path)[source]
albow.resource.missing_sound(e, name)[source]
albow.resource.no_sound(e)[source]
albow.resource.reload_fonts(proportion=100)[source]

Reload the fonts defined in font_cache. Used to update the font sizes withpout restarting the application.

albow.resource.resource_exists(*names, **kwds)[source]
albow.resource.resource_path(*names, **kwds)[source]
albow.resource.setCurLang(lang)[source]

albow.root module

exception albow.root.Cancel[source]

Bases: exceptions.Exception

class albow.root.RootWidget(surface)[source]

Bases: albow.widget.Widget

RemoveEditFiles()[source]
add_idle_handler(widget)[source]
begin_frame()[source]
bonus_draw_time = False
call_idle_handlers(event)[source]
capture_mouse(widget)[source]
captured_widget = None
changeCameraKeys(keyNum)[source]
changeMovementKeys(keyNum, keyname)[source]
static confirm_quit()[source]
fix_sticky_ctrl()[source]
frames = 0
static getKey(evt=None, movement=False, keyname=None)[source]
static get_mouse_for(widget)[source]
get_nudge_block()[source]
get_root()[source]
gl_clear()[source]
has_focus()[source]
hover_widget = None
labelClass(s, t)
static music_end()[source]
open_screenshots_folder()[source]
quit()[source]
redraw_every_frame = False
remove_idle_handler(widget)[source]
run()[source]
run_modal(modal_widget)[source]
screenshot_notify()[source]
static send_key(widget, name, event)[source]
static set_timer(ms)[source]
show_tooltip(widget, pos)[source]
take_screenshot()[source]
update_tooltip(pos=None)[source]
albow.root.add_modifiers(event)[source]
albow.root.get_focus()[source]
albow.root.get_root()[source]
albow.root.get_top_widget()[source]
albow.root.make_scheduled_calls()[source]
albow.root.schedule(delay, func)[source]

Arrange for the given function to be called after the specified delay in seconds. Scheduled functions are called synchronously from the event loop, and only when the frame timer is running.

albow.root.set_modifier(key, value)[source]

albow.screen module

class albow.screen.Screen(shell, **kwds)[source]

Bases: albow.widget.Widget

begin_frame()[source]
enter_screen()[source]
leave_screen()[source]

albow.scrollpanel module

class albow.scrollpanel.ScrollPanel(*args, **kwargs)[source]

Bases: albow.layout.Column

click_item(n, e)[source]
column_info(row_data)[source]
column_margin = 2
draw_image_cell(surf, i, data, cell_rect, column)[source]

...

draw_text_cell(surf, i, data, cell_rect, align, font)[source]
draw_tree_cell(surf, i, data, cell_rect, column)[source]

...

num_rows()[source]
row_data(row)[source]
class albow.scrollpanel.ScrollRow(cell_size, nrows, **kwargs)[source]

Bases: albow.palette_view.PaletteView

can_scroll_left()[source]
can_scroll_right()[source]
cell_rect(row, col)[source]
click_item(n, e)[source]
draw(surface)[source]
draw_hscrollbar(surface)[source]
draw_item(surf, row, row_rect)[source]
draw_item_and_highlight(surface, i, rect, highlight)[source]
draw_scroll_left_button(surface)[source]
draw_scroll_right_button(surface)[source]
draw_table_cell(surf, i, data, cell_rect, column)[source]
hscrollbar_rect()[source]
item_is_selected(n)[source]
mouse_down(event)[source]
mouse_drag(event)[source]
mouse_up(event)[source]
num_items()[source]
num_rows()[source]
row_data(row)[source]
scroll_down_rect()[source]
scroll_left(delta=1)[source]
scroll_left_rect()[source]
scroll_right(delta=1)[source]
scroll_right_rect()[source]
scroll_up_rect()[source]
tooltipText

albow.shell module

class albow.shell.Shell(surface, **kwds)[source]

Bases: albow.root.RootWidget

begin_frame()[source]
show_screen(new_screen)[source]

albow.sound module

albow.sound.pause_sound()[source]
albow.sound.resume_sound()[source]
albow.sound.stop_sound()[source]

albow.tab_panel module

class albow.tab_panel.TabPanel(pages=None, **kwds)[source]

Bases: albow.widget.Widget

add_page(title, page, idx=None)[source]
content_rect()[source]
content_size()[source]
draw(surf)[source]
draw_tab_area_bg(surf)[source]
draw_tab_bg(surf, page, selected, rect)[source]
draw_tabs(surf)[source]
gl_draw(root, offset)[source]
gl_draw_self(root, offset)[source]
iter_tabs()[source]
mouse_down(e)[source]
page_height()[source]
remove_page(page)[source]
show_page(page)[source]
tab_bg_color_for_page(page)[source]
tab_number_containing_x(x)[source]
tab_titles = None

albow.table_view module

class albow.table_view.TableColumn(title, width, align='l', fmt=None)[source]

Bases: object

format(data)[source]
format_string = '%s'
formatter(data)[source]
class albow.table_view.TableHeaderView(width, height)[source]

Bases: albow.table_view.TableRowBase

click_item(n, e)[source]
draw_table_cell(surf, i, data, cell_rect, column)[source]
row_data(row)[source]
class albow.table_view.TableRowBase(cell_size, nrows, scrolling)[source]

Bases: albow.palette_view.PaletteView

draw_item(surf, row, row_rect)[source]
draw_table_cell(surf, i, data, cell_rect, column)[source]
num_items()[source]
row_data(row)[source]
class albow.table_view.TableRowView(cell_size, nrows, scrolling)[source]

Bases: albow.table_view.TableRowBase

click_item(n, e)[source]
highlight_style = 'fill'
item_is_selected(n)[source]
vstretch = True
class albow.table_view.TableView(nrows=15, height=None, header_height=None, row_height=None, scrolling=True, **kwds)[source]

Bases: albow.layout.Column

static click_column_header(col)[source]
click_header(n, e)[source]
click_row(n, e)[source]
column_info(row_data)[source]
column_margin = 2
columns = []
draw_header_cell(surf, i, cell_rect, column)[source]
draw_table_cell(surf, i, data, cell_rect, column)[source]
draw_text_cell(surf, i, data, cell_rect, align, font)[source]
header_bg_color = None
header_fg_color = None
header_font = None
header_spacing = 5
static row_is_selected(n)[source]

albow.text_screen module

class albow.text_screen.Page(text_screen, heading, lines)[source]

Bases: object

draw(surface, color, pos)[source]
class albow.text_screen.TextScreen(shell, filename, **kwds)[source]

Bases: albow.screen.Screen

at_first_page()[source]
at_last_page()[source]
draw(surface)[source]
go_back()[source]
next_page()[source]
prev_page()[source]
set_current_page(n)[source]

albow.theme module

class albow.theme.FontProperty(name)[source]

Bases: albow.theme.ThemeProperty

get_from_theme(cls, name)[source]
class albow.theme.Theme(name, base=None)[source]

Bases: object

get(cls, name)[source]
get_font(cls, name)[source]
lookup(cls, name)[source]
exception albow.theme.ThemeError[source]

Bases: exceptions.Exception

class albow.theme.ThemeProperty(name)[source]

Bases: object

get_from_theme(cls, name)[source]

albow.translate module

This module adds translation functionnalities to Albow.

It looks for locale files in a sub folder ‘lang’ according to the system default, or user specified locale.

The locale files are text files where ‘entries’ are defined.

Syntax example:

o0 This is the first entry. t0 Ceci est la première entrée. o1 Here is the second one. You can see it is splitted on two lines. t1 Voici la deuxième. Vous pouvez constater qu’elle est sur deux lignes.

The ‘oN’ markers on the begining of a line marks the original string; the ‘tN’, the translations. Strings can be splited on several lines and contain any sort of characters (thus, be aware of unicode).

Files are named according to their language name, e.g. fr_FR.trn for french. The extension .trn is an arbitrary convention. The file ‘template.trn’ is given to be used as a base for other ones. It contains the strings used in Albow. They are not translated.

As convention, english is considered as the default language, and the file en_EN.trn would never be present.

Usage:

You need, a least, these three function in your program: * setLangPath to define the translations location; * buildTranslation to build up the cache; * _ function to translate strings.

albow.translate.buildTranslation(lang, extend=False, langPath=None)[source]

Finds the file corresponding to ‘lang’ builds up string_cache. If the file is not valid, does nothing. Errors encountered during the process are silently ignored. Returns string_cache (dict) and wether the file exists (bool).

albow.translate.correctEncoding(data, oldEnc='ascii', newEnc='cp1252')[source]

Returns encoded/decoded data. Disabled for now...

albow.translate.getLang()[source]

Return the actual language.

albow.translate.getLangName(file, path=None)[source]

Return the language name defined in the .trn file. If the name is not found, return the file base name.

albow.translate.getLangPath()[source]

Return the actual ‘lang’ folder.

albow.translate.getPlatInfo(**kwargs)[source]

kwargs: dict: {“module_name”: module,...} used to display version information about modules.

albow.translate.loadTemplate(fName='template.trn')[source]

Load the template fName file in the global template variable. Returns the template.

albow.translate.saveTemplate()[source]
albow.translate.setLang(newlang)[source]

Set the actual language. Returns old and new languages and string_cache in a tulpe.

newlang: str: new laguage to load in the format <language>_<country>

albow.translate.setLangPath(path)[source]

Changes the default ‘lang’ folder path. Retrun True if the path is valid, False otherwise.

albow.tree module

class albow.tree.SelectItemTypePanel(title, responses, default=None, ok_action=None)[source]

Bases: albow.dialogs.Dialog

dismiss_ok()[source]
class albow.tree.SetupNewItemPanel(type_string, types={'Boolean': (<type 'bool'>, <class 'albow.controls.CheckBox'>, True), 'Text': (<type 'unicode'>, <class 'albow.fields.TextFieldWrapped'>, ''), 'Floating point': (<type 'float'>, <class 'albow.fields.FloatField'>, 0.0), 'Compound': (<type 'dict'>, None, {}), 'Integer': (<type 'int'>, <class 'albow.fields.IntField'>, 0)}, ok_action=None)[source]

Bases: albow.dialogs.Dialog

dismiss_ok()[source]
get_widget(widget)[source]
class albow.tree.Tree(*args, **kwargs)[source]

Bases: albow.layout.Column

...

add_child(types_item=None)[source]
add_child_enabled()[source]
add_item(types_item=None)[source]
add_item_enabled()[source]
add_item_to(parent, (name, item))[source]
static add_item_to_dict(parent, name, item)[source]
build_layout()[source]
click_item(n, pos)[source]

...

column_info(row_data)[source]
column_margin = 2
copy_item()[source]
copy_item_enabled()[source]
cut_item()[source]
cut_item_enabled()[source]
delete_item()[source]
delete_item_enabled()[source]
deploy(n)[source]
dispatch_key(name, evt)[source]
draw_closed_bullet(surf, bg, fg, shape, text, item_text, lvl)[source]
draw_deadend_bullet(surf, bg, fg, shape, text, item_text, lvl)[source]
static draw_image_cell(surf, i, data, cell_rect, column)[source]

...

draw_item_text(surf, r, text)[source]
draw_opened_bullet(surf, bg, fg, shape, text, item_text, lvl)[source]
draw_text_cell(surf, i, data, cell_rect, align, font)[source]
draw_tree_cell(surf, i, data, cell_rect, column)[source]

...

get_bullet_rect(surf, lvl)[source]
get_item_children(item)[source]
get_item_parent(item)[source]
num_rows()[source]
paste_child()[source]
paste_child_enabled()[source]
paste_item()[source]
paste_item_enabled()[source]
rename_item()[source]
rename_item_enabled()[source]
row_data(row)[source]
row_margin = 2
rows = []
select_item(n)[source]
show_menu(pos)[source]
class albow.tree.TreeRow(cell_size, nrows, **kwargs)[source]

Bases: albow.scrollpanel.ScrollRow

click_item(n, e)[source]
mouse_down(e)[source]
albow.tree.create_base_item(self, i_type, i_name, i_value)[source]
albow.tree.create_bool(self, i_type, i_name, i_value)
albow.tree.create_dict(self, i_type, i_name, i_value)
albow.tree.create_float(self, i_type, i_name, i_value)
albow.tree.create_int(self, i_type, i_name, i_value)
albow.tree.create_unicode(self, i_type, i_name, i_value)
albow.tree.select_item_type(ok_action, types={'Boolean': (<type 'bool'>, <class 'albow.controls.CheckBox'>, True), 'Text': (<type 'unicode'>, <class 'albow.fields.TextFieldWrapped'>, ''), 'Floating point': (<type 'float'>, <class 'albow.fields.FloatField'>, 0.0), 'Compound': (<type 'dict'>, None, {}), 'Integer': (<type 'int'>, <class 'albow.fields.IntField'>, 0)})[source]
albow.tree.setup_map_types_item(mp=None)[source]

albow.utils module

albow.utils.align_rect(r, frame, align='tl', margin=0)[source]
albow.utils.blit_in_rect(dst, src, frame, align='tl', margin=0)[source]
albow.utils.blit_tinted(surface, image, pos, tint, src_rect=None)[source]
albow.utils.brighten(rgb, factor)[source]
albow.utils.frame_rect(surface, color, rect, thick=1)[source]

albow.vectors module

albow.vectors.add(x, y)[source]
albow.vectors.maximum(*args)[source]
albow.vectors.subtract(x, y)[source]

albow.version module

albow.widget module

class albow.widget.Widget(rect=None, **kwds)[source]

Bases: object

add(arg, index=None)[source]
add_centered(widget)[source]
all_parents()[source]
anchor = 'ltwh'
attention_lost()[source]
augment_mouse_event(event)[source]
bottom
bottomleft
bottomright
call_handler(name, *args)[source]
call_parent_handler(name, *args)[source]
cancel_response = None
center
centerx
centery
collect_tab_order(result)[source]
debug_resize = False
diagnose_subsurface_problem(surface, widget)[source]
dismiss(value=True)[source]
dispatch_attention_loss()[source]
dispatch_key(name, event)[source]
doNotTranslate = False
draw(surface)[source]
draw_all(surface)[source]
draw_over(surface)[source]
enter_response = None
find_widget(pos)[source]
focus()[source]
focus_chain()[source]
focus_on(subwidget)[source]
focused_on(widget)[source]
static get_cursor(event)[source]
get_focus()[source]
get_is_gl_container()[source]
get_margin_rect()[source]
get_menu_bar()[source]
get_mouse()[source]
get_rect()[source]
get_root()[source]
get_tab_order()[source]
get_top_widget()[source]
get_update_translation
get_visible()[source]
gl_draw_all(root, offset)[source]
gl_draw_self(root, offset)[source]
global_to_local(p)[source]
handle_command(name, *args)[source]
handle_mouse(name, event)[source]
has_focus()[source]
height
inherited(attribute)[source]
init_attr(kwds, name)[source]
invalidate()[source]
is_gl_container
is_hover
is_inside(container)[source]
key_down(event)[source]
key_up(event)[source]
left
local_to_global(p)[source]
local_to_global_offset()[source]
menu_bar
midbottom
midleft
midright
midtop
mouse_down(event)[source]
mouse_up(event)[source]
name = 'Widget'
next_handler()[source]
notify_attention_loss()[source]
parent_resized(dw, dh)[source]
predict(kwds, name)[source]
predict_attr(kwds, name)[source]
predict_font(kwds, name='font')[source]
present(centered=True)[source]
rect
redraw_every_event = True
remove(widget)[source]
resized(dw, dh)[source]
resizing_axes = {'h': 'lr', 'v': 'tb'}
resizing_values = {'': [0], 's': [0, 1], 'm': [1]}
right
set(**kwds)[source]
set_is_gl_container(x)[source]
set_menu_bar(menubar)[source]
set_parent(parent, index=None)[source]
set_rect(x)[source]
set_resizing(axis, value)[source]
set_size_for_text(width, nlines=1)[source]
set_update_ui(v)[source]
set_visible(x)[source]
setup_cursor(event)[source]
setup_spacings()[source]
shrink_wrap()[source]
size
tab_stop = False
tab_to_first()[source]
tab_to_next()[source]
tooltip = None
tooltipText = None
top
topleft
topright
visible
width
albow.widget.overridable_property(name, doc=None)[source]

Creates a property which calls methods get_xxx and set_xxx of the underlying object to get and set the property value, so that the property’s behaviour may be easily overridden by subclasses.

albow.widget.rect_property(name)[source]

Module contents

ALBOW - A Little Bit of Widgetry for PyGame by Gregory Ewing greg.ewing@canterbury.ac.nz