diff options
Diffstat (limited to 'theme.py')
-rw-r--r-- | theme.py | 215 |
1 files changed, 215 insertions, 0 deletions
diff --git a/theme.py b/theme.py new file mode 100644 index 0000000..3d3b404 --- /dev/null +++ b/theme.py @@ -0,0 +1,215 @@ +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +import gtk + +from sugar.graphics import style + +GRAY = "#B7B7B7" # gray +PINK = "#FF0099" # pink +YELLOW = "#FFFF00" # yellow +WHITE = "#FFFFFF" +BLACK = "#000000" +BACKGROUND = "#66CC00" # light green +BUTTON_FOREGROUND = "#CCFB99" # very light green +BUTTON_BACKGROUND = "#027F01" # dark green +COLOR_FG_BUTTONS = ( + (gtk.STATE_NORMAL,"#CCFF99"), + (gtk.STATE_ACTIVE,"#CCFF99"), + (gtk.STATE_PRELIGHT,"#CCFF99"), + (gtk.STATE_SELECTED,"#CCFF99"), + (gtk.STATE_INSENSITIVE,"#CCFF99"), + ) # very light green +COLOR_BG_BUTTONS = ( + (gtk.STATE_NORMAL,"#027F01"), + (gtk.STATE_ACTIVE,"#CCFF99"), + (gtk.STATE_PRELIGHT,"#016D01"), + (gtk.STATE_SELECTED,"#CCFF99"), + (gtk.STATE_INSENSITIVE,"#027F01"), + ) +OLD_COLOR_BG_BUTTONS = ( + (gtk.STATE_NORMAL,"#027F01"), + (gtk.STATE_ACTIVE,"#014D01"), + (gtk.STATE_PRELIGHT,"#016D01"), + (gtk.STATE_SELECTED,"#027F01"), + (gtk.STATE_INSENSITIVE,"#027F01"), + ) + +SPANISH = u'Espa\xf1ol' +LANG = {'English':{'size':'Size', + 'angle':'Angle', + 'lessonplan':'Lesson Plans', + 'lpdir':'lp-en', + 'export':'Export Frame One', + 'HEAD':'Head', + 'NECK':'Neck', + 'RIGHT SHOULDER':'Right Shoulder', + 'UPPER RIGHT ARM':'Upper Right Arm', + 'LOWER RIGHT ARM':'Lower Right Arm', + 'RIGHT HAND':'Right Hand', + 'LEFT SHOULDER':'Left Shoulder', + 'UPPER LEFT ARM':'Upper Left Arm', + 'LOWER LEFT ARM':'Lower Left Arm', + 'LEFT HAND':'Left Hand', + 'TORSO':'Torso', + 'RIGHT HIP':'Right Hip', + 'UPPER RIGHT LEG':'Upper Right Leg', + 'LOWER RIGHT LEG':'Lower Right Leg', + 'RIGHT FOOT':'Right Foot', + 'LEFT HIP':'Left Hip', + 'UPPER LEFT LEG':'Upper Left Leg', + 'LOWER LEFT LEG':'Lower Left Leg', + 'LEFT FOOT':'Left Foot'}, + SPANISH:{'size':u'Tama\xf1o', + 'angle':u'\xe1ngulo', + 'lessonplan':u'Planes de la lecci\xf3n', + 'lpdir':'lp-en', + 'export':'Un marco de la exportacion', + 'HEAD':'Cabeza', + 'NECK':'Cuello', + 'RIGHT SHOULDER':'Hombro derecho', + 'UPPER RIGHT ARM':'Brazo derecho superior', + 'LOWER RIGHT ARM':'Bajar el brazo derecho', + 'RIGHT HAND':'Mano derecha', + 'LEFT SHOULDER':'Hombro izquierdo', + 'UPPER LEFT ARM':'Brazo izquierdo superior', + 'LOWER LEFT ARM':u'Un brazo izquierdo m\xe1s bajo', + 'LEFT HAND':'Mano izquierda', + 'TORSO':'Torso', + 'RIGHT HIP':'Cadera derecha', + 'UPPER RIGHT LEG':'Pierna derecha superior', + 'LOWER RIGHT LEG':'Bajar la pierna derecha', + 'RIGHT FOOT':'Pie derecho', + 'LEFT HIP':'Cadera izquierda', + 'UPPER LEFT LEG':'Pierna izquierda superior', + 'LOWER LEFT LEG':u'Una pierna izquierda m\xe1s baja', + 'LEFT FOOT':'Pie izquierdo'}} + +PAD = 10 +LOGO_WIDTH = 276 +TOLLBAR_HEIGHT = style.LARGE_ICON_SIZE + +KEYFRAMEWIDTH = gtk.gdk.screen_width() - PAD*3 +KEYFRAMEHEIGHT = 80 + +DRAWWIDTH = gtk.gdk.screen_width() - LOGO_WIDTH - PAD*4 +DRAWHEIGHT = gtk.gdk.screen_height() - KEYFRAMEHEIGHT - PAD*6 - TOLLBAR_HEIGHT + +KEYFRAMES = [] +KEYFRAMES_NUMBER = 5 +TOTALFRAMES = 30 + +KEYFRAME_RADIUS = 40 + +MOVEMIT_TIMEOUT = 1000 + +for i in range(KEYFRAMES_NUMBER): + keyframe_width = KEYFRAMEWIDTH/KEYFRAMES_NUMBER + KEYFRAMES.append(keyframe_width/2 + i*keyframe_width) + +# scale coordinates between native resolution and transportable + +TRANSFER_DRAWWIDTH = 350 +TRANSFER_DRAWHEIGHT = 350 +TRANSFER_KEYFRAMEWIDTH = 600 + +def scale_keyframe(x): + factor = float(TRANSFER_KEYFRAMEWIDTH) / (KEYFRAMEWIDTH) + x = max(KEYFRAME_RADIUS, int(x/factor)) + x = min(KEYFRAMEWIDTH-KEYFRAME_RADIUS-1, x) + return x + +def scale_middle(middle): + if not middle: + return None + x_factor = float(TRANSFER_DRAWWIDTH) / DRAWWIDTH + y_factor = float(TRANSFER_DRAWHEIGHT) / DRAWHEIGHT + return (min(DRAWWIDTH-1, int(middle[0]/x_factor)), + min(DRAWHEIGHT-1, int(middle[1]/y_factor))) + +def unscale_keyframe(x): + factor = float(TRANSFER_KEYFRAMEWIDTH) / (KEYFRAMEWIDTH) + return int(x*factor) + +def unscale_middle(middle): + if not middle: + return None + x_factor = float(TRANSFER_DRAWWIDTH) / DRAWWIDTH + y_factor = float(TRANSFER_DRAWHEIGHT) / DRAWHEIGHT + return (int(middle[0]*x_factor), int(middle[1]*y_factor)) + +# defaults + +STICKS = {'HEAD':(0,15), + 'NECK':(90,15), + 'RIGHT SHOULDER':(185,25), + 'UPPER RIGHT ARM':(60,35), + 'LOWER RIGHT ARM':(35,35), + 'LEFT SHOULDER':(355,25), + 'UPPER LEFT ARM':(300,35), + 'LOWER LEFT ARM':(325,35), + 'TORSO':(270,60), + 'RIGHT HIP':(80,20), + 'UPPER RIGHT LEG':(300,50), + 'LOWER RIGHT LEG':(340,40), + 'RIGHT FOOT':(85,15), + 'LEFT HIP':(280,20), + 'UPPER LEFT LEG':(65,50), + 'LOWER LEFT LEG':(15,40), + 'LEFT FOOT':(275,15)} + +PARTS = {'RIGHT HAND':14, + 'LEFT HAND':14} + +STICKLIST = ['NECK','HEAD','RIGHT SHOULDER','UPPER RIGHT ARM','LOWER RIGHT ARM', + 'LEFT SHOULDER','UPPER LEFT ARM','LOWER LEFT ARM','TORSO', + 'RIGHT HIP','UPPER RIGHT LEG','LOWER RIGHT LEG','RIGHT FOOT', + 'LEFT HIP','UPPER LEFT LEG','LOWER LEFT LEG','LEFT FOOT'] + +LABELLIST = ['HEAD','NECK','RIGHT SHOULDER','UPPER RIGHT ARM','LOWER RIGHT ARM', + 'RIGHT HAND','LEFT SHOULDER','UPPER LEFT ARM','LOWER LEFT ARM','LEFT HAND', + 'TORSO','RIGHT HIP','UPPER RIGHT LEG','LOWER RIGHT LEG','RIGHT FOOT', + 'LEFT HIP','UPPER LEFT LEG','LOWER LEFT LEG','LEFT FOOT'] + +# The joint is the circle at the end of the stick + +JOINTS = {'HEAD':'head', + 'NECK':'neck', + 'RIGHT SHOULDER':'rightshoulder', + 'UPPER RIGHT ARM':'rightelbow', + 'LOWER RIGHT ARM':'righthand', + 'LEFT SHOULDER':'leftshoulder', + 'UPPER LEFT ARM':'leftelbow', + 'LOWER LEFT ARM':'lefthand', + 'TORSO':'groin', + 'RIGHT HIP':'righthip', + 'UPPER RIGHT LEG':'rightknee', + 'LOWER RIGHT LEG':'rightheel', + 'RIGHT FOOT':'righttoe', + 'LEFT HIP':'lefthip', + 'UPPER LEFT LEG':'leftknee', + 'LOWER LEFT LEG':'leftheel', + 'LEFT FOOT':'lefttoe'} + +JOINTTOSTICK = {} +for jname in JOINTS: + JOINTTOSTICK[JOINTS[jname]] = jname + +PARTS = {'HEAD':40, + 'RIGHT HAND':14, + 'LEFT HAND':14} + +TESTSTICKS = {'RIGHT SHOULDER':(37,20), + 'UPPER RIGHT ARM':(6,15), + 'LOWER RIGHT ARM':(10,15)} |