183
|
1 import os
|
|
2 import orpg.pluginhandler
|
|
3 from orpg.mapper.miniatures_handler import *
|
|
4 from orpg.orpgCore import *
|
|
5 import wx
|
|
6
|
|
7
|
|
8 class QuickNoteDialog(wx.Dialog):
|
|
9 def __init__(self):
|
|
10 wx.Dialog.__init__(self, None, -1, "Quick Note", size=(250, 210))
|
|
11 self.text = wx.TextCtrl(self, -1, "", style=wx.TE_MULTILINE)
|
|
12 sizer = wx.BoxSizer(wx.VERTICAL)
|
|
13 sizer.Add(self.text, 1, wx.EXPAND)
|
|
14 self.SetSizer(sizer)
|
|
15
|
|
16 class Plugin(orpg.pluginhandler.PluginHandler):
|
|
17 def __init__(self, plugindb, parent):
|
|
18 orpg.pluginhandler.PluginHandler.__init__(self, plugindb, parent)
|
|
19 self.name = 'Mini Quick Notes'
|
|
20 self.author = 'David'
|
|
21 self.help = """Allows you to add private notes when you right-click on a mini on the map.
|
|
22
|
|
23 Note: it will try to save data between sessions but you must load plugin AFTER the map has been loaded
|
|
24 so do not auto-load this plugin. Also these notes are NOT shared with other users.
|
|
25
|
|
26 Look at the mini superscript plugin for an example of how to do that.
|
|
27
|
|
28 Modified for Traipse (Prof. Ebral)
|
|
29 EXPERIMENTAL! In the process of being updated."""
|
|
30 self.save_on_exit = False;
|
|
31
|
|
32 def plugin_menu(self):
|
|
33 pass
|
|
34
|
|
35 def plugin_enabled(self):
|
|
36 m = component.get("map").layer_handlers[2]
|
|
37 m.set_mini_rclick_menu_item("Quick Notes", self.on_quick_note)
|
|
38
|
|
39 db_notes_list = self.plugindb.GetList("xxminiquicknote", "notes", [])
|
|
40 matched = 0;
|
|
41 for mini in component.get("map").canvas.layers['miniatures'].miniatures:
|
|
42 print 'label:'+mini.label
|
|
43 print 'posx:'+str(mini.pos.x)
|
|
44 print 'posy:'+str(mini.pos.y)
|
|
45 for db_note in db_notes_list:
|
|
46 print 'db_note:'+str(db_note)
|
|
47 if mini.label == db_note[0] and mini.pos.x == db_note[1] and mini.pos.y == db_note[2]:
|
|
48 mini.quicknote = db_note[3]
|
|
49 db_notes_list.remove(db_note)
|
|
50 matched += 1
|
|
51 break
|
|
52
|
|
53 def plugin_disabled(self):
|
|
54 m = component.get("map").layer_handlers[2]
|
|
55 m.set_mini_rclick_menu_item("Quick Notes", None)
|
|
56
|
|
57 if self.save_on_exit:
|
|
58 db_notes_list = []
|
|
59 for mini in component.get("map").canvas.layers['miniatures'].miniatures:
|
|
60 if 'quicknote' in mini.__dict__:
|
|
61 db_notes_list.append([mini.label, mini.pos.x, mini.pos.y, mini.quicknote])
|
|
62 self.plugindb.SetList("xxminiquicknote", "notes", db_notes_list)
|
|
63
|
|
64 def on_quick_note(self, event):
|
|
65 self.save_on_exit = True
|
|
66 m = component.get("map").layer_handlers[2]
|
|
67 # m.sel_rmin is the mini that was just right-clicked
|
|
68 if 'quicknote' not in m.sel_rmin.__dict__:
|
|
69 m.sel_rmin.quicknote = ''
|
|
70 dlg = QuickNoteDialog()
|
|
71 dlg.text.SetValue(m.sel_rmin.quicknote)
|
|
72 dlg.ShowModal()
|
|
73 m.sel_rmin.quicknote = dlg.text.GetValue()
|
|
74 dlg.Destroy()
|