Missing game options

panzooka

Prince
Joined
Jul 4, 2005
Messages
433
my friend has more game options than me, that brought my attention.
please tell me what options i am missing, and how to possibly fix this
 

Attachments

  • Image1.jpg
    Image1.jpg
    108 KB · Views: 581
  • Image2.jpg
    Image2.jpg
    102.2 KB · Views: 516
  • Image3.jpg
    Image3.jpg
    99.8 KB · Views: 450
  • Image4.jpg
    Image4.jpg
    66.8 KB · Views: 448
Please post your system specs. Looks to me as if at the options menu the entries are just not displayed.
 
i know, because the other tab is blank, not even the exit button
i've reinstalled the game 2 times

2400+ sempron
512DDR
ATI 9600XT 64mb
windows XP sp2 chinese version
 
panzooka said:
i know, because the other tab is blank, not even the exit button
i've reinstalled the game 2 times

2400+ sempron
512DDR
ATI 9600XT 64mb
windows XP sp2 chinese version


A side note :
(1) Chinese version ?
(2) You live in China ?
 
My problem wirth the option menu is that it is even worse, except the game tab all the others are blanc. I messed around with the according Pyton file, and I figured out that the function that should return the number of available resoltions returns some crap. I replaced it with a 9 and I got more options however there is still something in the third tab that prevents to show up the fourth tab.

-Martin
 
I "USED" to have all the options... I checked the one for the custom music folder, chose one... next thing I knew as soon as I tried to revert, the option had disappeared... along with the 'Other' tab's full content.

Any clue as to why this happens, and more importantly, how to get all the options back?
 
looks like its not only me who has this kind of problem

i've looked into the python, and i dont know any python, i know abit of C++
and from the looks, i think the "argslist" array is not working

or the python script is not working
 
panzooka said:
how do u mess around with the python file, how

Of course with a text editor of your choice, like EditPlus2 or even simpler like windows note pad, probably you already figured out on your own.

However maybe the python engine could be the problem, maybe replacing that boost_python-vc71-mt-1_32.dll could help. Of course the most important question is how to do it if it is possible at all.

-Martin
 
Thanks. Forgive me for being slightly suspicious - but I thought that perhaps the difference was that the screen was from a different (ie pirated) version of the game - but it is build 100.

Maybe they're dynamically created menu's based on system configuration? What exactly is missing? :confused:
 
CvOptionsScreen.py said:
## Sid Meier's Civilization 4
## Copyright Firaxis Games 2005

# For Input see CvOptionsScreenCallbackInterface in Python\EntryPoints\

import CvUtil
from CvPythonExtensions import *

# globals
gc = CyGlobalContext()
UserProfile = CyUserProfile()
localText = CyTranslator()

class CvOptionsScreen:
"Options Screen"

def __init__(self):

self.iScreenHeight = 50

self.iGameOptionsTabID = 0
self.iGraphicOptionsTabID = 1
self.iAudioOptionsTabID = 2
self.iOtherOptionsTabID = 3

self.callbackIFace = "CvOptionsScreenCallbackInterface"

def getTabControl(self):
return self.pTabControl

def getGameOptionsTabName(self):
return self.szGameOptionsTabName
def getGraphicOptionsTabName(self):
return self.szGraphicsOptionsTabName
def getAudioOptionsTabName(self):
return self.szAudioOptionsTabName
def getOtherOptionsTabName(self):
return self.szOtherOptionsTabName

# Used by Callback Interface to set path via checkbox
def getMusicPath(self):
return self.getTabControl().getText("CustomMusicEditBox")
def getCustomMusicCheckboxName(self):
return self.szCustomMusicCheckboxName

# Used by Callback Interface to set Alarm time via checkbox
def getAlarmHour(self):
return self.getTabControl().getText("AlarmHourEditBox")
def getAlarmMin(self):
return self.getTabControl().getText("AlarmMinEditBox")

# Used by Callback Interface to get user defined profile names from editbox
def setProfileEditCtrlText(self, szProfileName):
szWideProfName = CvUtil.convertToUnicode(szProfileName)
self.getTabControl().setText("ProfileNameEditBox", szWideProfName)
def getProfileEditCtrlText(self):
return self.getTabControl().getText("ProfileNameEditBox")

# Called from C++ after a custom music path is selected via FileDialogBox
def updateMusicPath (self, szMusicPath):

self.getTabControl().setText("CustomMusicEditBox", szMusicPath)
self.getTabControl().setValue(self.getCustomMusicCheckboxName(), true)

#########################################################################################
################################## SCREEN CONSTRUCTION ##################################
#########################################################################################

def initText(self):

self.szTabControlName = localText.getText("TXT_KEY_OPTIONS_TITLE", ())

self.szGameOptionsTabName = localText.getText("TXT_KEY_OPTIONS_GAME", ())
self.szGraphicsOptionsTabName = localText.getText("TXT_KEY_OPTIONS_GRAPHICS", ())
self.szAudioOptionsTabName = localText.getText("TXT_KEY_OPTIONS_AUDIO", ())
self.szOtherOptionsTabName = "Other" #localText.getText("TXT_KEY_OPTIONS_SCREEN_OTHER", ())

def refreshScreen (self):

#################### Game Options ####################

szTab = self.getGameOptionsTabName()
for iOptionLoop in range(PlayerOptionTypes.NUM_PLAYEROPTION_TYPES):
szWidgetName = "GameOptionCheckBox_" + str(iOptionLoop)
bOptionOn = UserProfile.getPlayerOption(iOptionLoop)
self.pTabControl.setValue(szWidgetName, bOptionOn)

# Languages Dropdown
self.getTabControl().setValue("LanguagesDropdownBox", CyGame().getCurrentLanguage())

#################### GRAPHICS ####################

szTab = self.getGraphicOptionsTabName()

# Graphics Dropdowns

self.getTabControl().setValue(self.szResolutionComboBoxName, UserProfile.getResolution() )
self.getTabControl().setValue("AntiAliasingDropdownBox", UserProfile.getAntiAliasing() )
self.getTabControl().setValue("GraphicsLevelDropdownBox", UserProfile.getGraphicsLevel() )
self.getTabControl().setValue("RenderQualityDropdownBox", UserProfile.getRenderQualityLevel() )
self.getTabControl().setValue("GlobeViewDropdownBox", UserProfile.getGlobeViewRenderLevel() )

# Graphic Option Checkboxes
for iOptionLoop in range(GraphicOptionTypes.NUM_GRAPHICOPTION_TYPES):
szWidgetName = "GraphicOptionCheckbox_" + str(iOptionLoop)
bOptionOn = UserProfile.getGraphicOption(iOptionLoop)
self.pTabControl.setValue(szWidgetName, bOptionOn)

#################### AUDIO ####################

szTab = self.getAudioOptionsTabName()

iMax = UserProfile.getVolumeStops()

# Volume Sliders and No Sound Checkboxes
for iWidgetNum in range(6):
if (iWidgetNum == 0): # Master Volume
iInitialVal = iMax-UserProfile.getMasterVolume()-1
bNoSoundTrue = UserProfile.isMasterNoSound()
elif (iWidgetNum == 1): # Music Volume
iInitialVal = iMax-UserProfile.getMusicVolume()-1
bNoSoundTrue = UserProfile.isMusicNoSound()
elif (iWidgetNum == 2): # Sound Effects Volume
iInitialVal = iMax-UserProfile.getSoundEffectsVolume()-1
bNoSoundTrue = UserProfile.isSoundEffectsNoSound()
elif (iWidgetNum == 3): # Speech Volume
iInitialVal = iMax-UserProfile.getSpeechVolume()-1
bNoSoundTrue = UserProfile.isSpeechNoSound()
elif (iWidgetNum == 4): # Ambience Volume
iInitialVal = iMax-UserProfile.getAmbienceVolume()-1
bNoSoundTrue = UserProfile.isAmbienceNoSound()
elif (iWidgetNum == 5): # Interface Volume
iInitialVal = iMax-UserProfile.getInterfaceVolume()-1
bNoSoundTrue = UserProfile.isInterfaceNoSound()

# Volume Slider
szWidgetName = "VolumeSlider_" + str(iWidgetNum)
self.getTabControl().setValue(szWidgetName, iInitialVal)

# Volume Checkbox
szWidgetName = "VolumeNoSoundCheckbox_" + str(iWidgetNum)
self.pTabControl.setValue(szWidgetName, bNoSoundTrue)

# Voice Capture Dropdown
self.getTabControl().setValue("CaptureDeviceDropdownBox", UserProfile.getCaptureDeviceIndex() )
# Voice Capture Slider
# self.getTabControl().setValue("CaptureVolumeSlider", UserProfile.getMaxCaptureVolume() - UserProfile.getCaptureVolume())
self.getTabControl().setValue("CaptureVolumeSlider", UserProfile.getCaptureVolume())

# Voice Playback Dropdown
self.getTabControl().setValue("PlaybackDeviceDropdownBox", UserProfile.getPlaybackDeviceIndex() )
# Voice Playback Slider
# self.getTabControl().setValue("PlaybackVolumeSlider", UserProfile.getMaxPlaybackVolume() - UserProfile.getPlaybackVolume())
self.getTabControl().setValue("PlaybackVolumeSlider", UserProfile.getPlaybackVolume())

# Voice Chatting Checkbox
self.getTabControl().setValue("VoiceChatCheckbox", UserProfile.useVoice())

# Speaker config
for iSpeakerConfigLoop in range(16):
szActiveConfig = UserProfile.getSpeakerConfigFromList(iSpeakerConfigLoop)
if (UserProfile.getSpeakerConfig() == szActiveConfig):
iInitialSelection = iSpeakerConfigLoop

# Speaker Config Dropdown
self.getTabControl().setValue("SpeakerConfigDropdownBox", iInitialSelection )

# Custom Music Path Checkbox
bUseCustomMusicPath = false
if (UserProfile.getMusicPath() != ""):
bUseCustomMusicPath = true
self.getTabControl().setValue(self.getCustomMusicCheckboxName(), bUseCustomMusicPath)

# Custom Music Path Editbox
szEditBoxDesc = ""
if (UserProfile.getMusicPath() != ""):
szEditBoxDesc = unicode(UserProfile.getMusicPath())
self.getTabControl().setText("CustomMusicEditBox", szEditBoxDesc)

#################### CLOCK ####################

szTab = self.getOtherOptionsTabName()

# Clock On Checkbox
self.getTabControl().setValue("ClockOnCheckbox", UserProfile.isClockOn())

# 24 Hour Clock Checkbox
self.getTabControl().setValue("24HourClockCheckbox", UserProfile.is24Hours())

# Alarm On Checkbox
self.getTabControl().setValue("AlarmOnCheckbox", isAlarmOn())

# Alarm Hours
self.getTabControl().setText("AlarmHourEditBox", str(getAlarmHourLeft()))
self.getTabControl().setText("AlarmMinEditBox", str(getAlarmMinLeft()))

#################### PROFILE ####################

# Profile Name Editbox
self.getTabControl().setText("ProfileNameEditBox", CvUtil.convertToUnicode(UserProfile.getProfileName()))

aszDropdownElements = ()
for iProfileLoop in range(UserProfile.getNumProfileFiles()):
szProfileFileName = UserProfile.getProfileFileName(iProfileLoop)
# Cut off file path and extension
szProfile = szProfileFileName[szProfileFileName.find("PROFILES\\")+9:-4]
aszDropdownElements = aszDropdownElements + (szProfile,)
if (UserProfile.getProfileName() == szProfile):
iInitialSelection = iProfileLoop

self.getTabControl().changeDropdownContents("ProfilesDropdownBox", aszDropdownElements)

# Profile List Dropdown
self.getTabControl().setValue("ProfilesDropdownBox", iInitialSelection)

#################### PROFILE ####################

# Broadband Radio Button
self.getTabControl().setValue("BroadbandSelection", not gc.getGame().isModem())

# Modem Checkbox
self.getTabControl().setValue("ModemSelection", gc.getGame().isModem())

def interfaceScreen (self):
"Initial creation of the screen"
self.initText()

self.pTabControl = CyGTabCtrl(self.szTabControlName, false, false)
self.pTabControl.setModal(1)
self.pTabControl.setSize(800,600)
self.pTabControl.setControlsExpanding(false)
self.pTabControl.setColumnLength(self.iScreenHeight)

# Set Tabs
self.pTabControl.attachTabItem("GameForm", self.szGameOptionsTabName)
self.pTabControl.attachTabItem("GraphicsForm", self.szGraphicsOptionsTabName)
self.pTabControl.attachTabItem("AudioForm", self.szAudioOptionsTabName)
self.pTabControl.attachTabItem("OtherForm", self.szOtherOptionsTabName)

self.drawGameOptionsTab()
self.drawGraphicOptionsTab()
self.drawAudioOptionsTab()
self.drawOtherTab()


def drawGameOptionsTab(self):

tab = self.pTabControl

tab.attachVBox("GameForm", "GameVBox")

# Add Game Options

tab.attachPanel("GameVBox", "GamePanelCenter")
tab.setStyle("GamePanelCenter", "Panel_Tan15_Style")
tab.setLayoutFlag("GamePanelCenter", "LAYOUT_SIZE_HEXPANDING")
tab.setLayoutFlag("GamePanelCenter", "LAYOUT_SIZE_VEXPANDING")

tab.attachScrollPanel("GamePanelCenter", "GamePanel")
tab.setLayoutFlag("GamePanel", "LAYOUT_SIZE_HEXPANDING")
tab.setLayoutFlag("GamePanel", "LAYOUT_SIZE_VEXPANDING")

tab.attachHBox("GamePanel", "GameHBox")
tab.setLayoutFlag("GameHBox", "LAYOUT_SIZE_HEXPANDING")

tab.attachVBox("GameHBox", "GameVBox1")
tab.setLayoutFlag("GameVBox1", "LAYOUT_SIZE_HEXPANDING")
#tab.attachVSeparator("GameHBox", "GameHBoxSeparator")
tab.attachVBox("GameHBox", "GameVBox2")
tab.setLayoutFlag("GameVBox2", "LAYOUT_SIZE_HEXPANDING")

i = 0
for iOptionLoop in range(PlayerOptionTypes.NUM_PLAYEROPTION_TYPES):
szOptionDesc = gc.getPlayerOptionsInfoByIndex(iOptionLoop).getDescription()
szCallbackFunction = "handleGameOptionsClicked"
szWidgetName = "GameOptionCheckBox_" + str(iOptionLoop)
bOptionOn = UserProfile.getPlayerOption(iOptionLoop)#gc.getPlayer(gc.getGame().getActivePlayer()).isOption(iOptionLoop)
if ((i+1) <= (PlayerOptionTypes.NUM_PLAYEROPTION_TYPES+1)/2):
vbox = "GameVBox1"
else:
vbox = "GameVBox2"
tab.attachCheckBox(vbox, szWidgetName, szOptionDesc, self.callbackIFace, szCallbackFunction, szWidgetName, bOptionOn)
i += 1


tab.attachSpacer("GamePanelCenter")

tab.attachHBox("GamePanelCenter", "LangHBox")

# Languages Dropdown
tab.attachLabel("LangHBox", "LangLabel", localText.getText("TXT_KEY_OPTIONS_SCREEN_LANGUAGE", ())) # Label
szDropdownDesc = "LanguagesDropdownBox"

tab.attachSpacer("LangHBox")

aszDropdownElements = ()
aszDropdownElements = aszDropdownElements + (localText.getText("TXT_KEY_ENGLISH", ()),)
aszDropdownElements = aszDropdownElements + (localText.getText("TXT_KEY_FRENCH", ()),)
aszDropdownElements = aszDropdownElements + (localText.getText("TXT_KEY_GERMAN", ()),)
aszDropdownElements = aszDropdownElements + (localText.getText("TXT_KEY_ITALIAN", ()),)
aszDropdownElements = aszDropdownElements + (localText.getText("TXT_KEY_SPANISH", ()),)

szCallbackFunction = "handleLanguagesDropdownBoxInput"
szWidgetName = "LanguagesDropdownBox"
iInitialSelection = CyGame().getCurrentLanguage()
tab.attachDropDown("LangHBox", szWidgetName, szDropdownDesc, aszDropdownElements, self.callbackIFace, szCallbackFunction, szWidgetName, iInitialSelection)
tab.setLayoutFlag(szWidgetName, "LAYOUT_LEFT")

########## Lower Panel

tab.attachHSeparator("GameVBox", "GameExitSeparator")

tab.attachHBox("GameVBox", "LowerHBox")
tab.setLayoutFlag("LowerHBox", "LAYOUT_HCENTER")

szOptionDesc = localText.getText("TXT_KEY_OPTIONS_RESET", ())
szCallbackFunction = "handleGameReset"
szWidgetName = "GameOptionsResetButton"
tab.attachButton("LowerHBox", szWidgetName, szOptionDesc, self.callbackIFace, szCallbackFunction, szWidgetName)

szOptionDesc = localText.getText("TXT_KEY_PEDIA_SCREEN_EXIT", ())
szCallbackFunction = "handleExitButtonInput"
szWidgetName = "GameOptionsExitButton"
tab.attachButton("LowerHBox", szWidgetName, szOptionDesc, self.callbackIFace, szCallbackFunction, szWidgetName)

def drawGraphicOptionsTab(self):

tab = self.pTabControl

tab.attachVBox("GraphicsForm", "GraphicsVBox")

tab.attachScrollPanel("GraphicsVBox", "GraphicsPanel")
tab.setLayoutFlag("GraphicsPanel", "LAYOUT_SIZE_HEXPANDING")
tab.setLayoutFlag("GraphicsPanel", "LAYOUT_SIZE_VEXPANDING")

tab.attachHBox("GraphicsPanel", "GraphicsPanelHBox")
tab.setLayoutFlag("GraphicsPanelHBox", "LAYOUT_SIZE_HPREFERREDEXPANDING")
tab.setLayoutFlag("GraphicsPanelHBox", "LAYOUT_SIZE_VPREFERREDEXPANDING")


####### RESOLUTION

tab.attachVBox("GraphicsPanelHBox", "ResVBox")
tab.setLayoutFlag("ResVBox", "LAYOUT_SIZE_HEXPANDING")
tab.setLayoutFlag("ResVBox", "LAYOUT_SIZE_VEXPANDING")

tab.attachPanel("ResVBox", "ResPanel")
tab.setStyle("ResPanel", "Panel_Tan15_Style")
tab.setLayoutFlag("ResPanel", "LAYOUT_SIZE_HEXPANDING")
tab.setLayoutFlag("ResPanel", "LAYOUT_SIZE_VEXPANDING")

hbox = "ResPanelHBox"
tab.attachHBox("ResPanel", hbox)
tab.setLayoutFlag(hbox, "LAYOUT_SIZE_HEXPANDING")
tab.setLayoutFlag(hbox, "LAYOUT_SIZE_VEXPANDING")


vbox = "ResPanelVBox"
tab.attachVBox(hbox, vbox)
tab.setLayoutFlag(vbox, "LAYOUT_SIZE_HEXPANDING")
tab.setLayoutFlag(vbox, "LAYOUT_SIZE_VEXPANDING")

# Screen Image
tab.attachPanel(vbox, "ResScreenPanel")
tab.setLayoutFlag("ResScreenPanel", "LAYOUT_SIZE_HEXPANDING")
tab.setStyle("ResScreenPanel", "Panel_Black25_Style")

tab.attachHBox(vbox, "ResHBox")

vbox1 = "ResVBox1"
vbox2 = "ResVBox2"
tab.attachVBox("ResHBox", vbox1)
tab.attachVBox("ResHBox", vbox2)

# Screen Resolution Dropdown
tab.attachLabel(vbox1, "ResLabel", localText.getText("TXT_KEY_OPTIONS_SCREEN_RES", ())) # Label
tab.setControlFlag("ResLabel", "CF_LABEL_DEFAULTSIZE")
szDropdownDesc = "ResolutionDropdownBox"
aszDropdownElements = ()
for iResLoop in range(UserProfile.getResolutionMaxModes()):
aszDropdownElements = aszDropdownElements + (unicode(UserProfile.getResolutionString(iResLoop)),)
szCallbackFunction = "handleResolutionDropdownInput"
szWidgetName = self.szResolutionComboBoxName = "ResolutionDropdownBox"
iInitialSelection = UserProfile.getResolution()
tab.attachDropDown(vbox2, szWidgetName, szDropdownDesc, aszDropdownElements, self.callbackIFace, szCallbackFunction, szWidgetName, iInitialSelection)

# Anti-Aliasing Dropdown
tab.attachLabel(vbox1, "AALabel", localText.getText("TXT_KEY_OPTIONS_ANTIALIAS", ()))
tab.setControlFlag("AALabel", "CF_LABEL_DEFAULTSIZE")
szDropdownDesc = "AntiAliasingDropdownBox"
aszDropdownElements = ()
for iAALoop in range(UserProfile.getAntiAliasingMaxMultiSamples()+1):
if (iAALoop == 0):
aszDropdownElements = aszDropdownElements + (u"0",)
elif (iAALoop == 1):
aszDropdownElements = aszDropdownElements + (u"2",)
elif (iAALoop == 2):
aszDropdownElements = aszDropdownElements + (u"4",)
elif (iAALoop == 3):
aszDropdownElements = aszDropdownElements + (u"8",)
elif (iAALoop == 4):
aszDropdownElements = aszDropdownElements + (u"16",)

szCallbackFunction = "handleAntiAliasingDropdownInput"
szWidgetName = "AntiAliasingDropdownBox"
iInitialSelection = UserProfile.getAntiAliasing()
tab.attachDropDown(vbox2, szWidgetName, szDropdownDesc, aszDropdownElements, self.callbackIFace, szCallbackFunction, szWidgetName, iInitialSelection)
tab.setLayoutFlag(szWidgetName, "LAYOUT_LEFT")

# Graphics Level
tab.attachLabel(vbox1, "GraphicsLevelLabel", localText.getText("TXT_KEY_OPTIONS_SCREEN_GRAPHICS_LEVEL", ())) # Label
tab.setControlFlag("GraphicsLevelLabel", "CF_LABEL_DEFAULTSIZE")
szDropdownDesc = "GraphicsLevelDropdownBox"
aszDropdownElements = (localText.getText("TXT_KEY_SEALEVEL_HIGH", ()), localText.getText("TXT_KEY_SEALEVEL_MEDIUM", ()), localText.getText("TXT_KEY_SEALEVEL_LOW", ()))
szCallbackFunction = "handleGraphicsLevelDropdownBoxInput"
szWidgetName = szDropdownDesc
iInitialSelection = UserProfile.getGraphicsLevel()
tab.attachDropDown(vbox2, szWidgetName, szDropdownDesc, aszDropdownElements, self.callbackIFace, szCallbackFunction, szWidgetName, iInitialSelection)

# Render Quality level
tab.attachLabel(vbox1, "GraphicsQualityLabel", localText.getText("TXT_KEY_OPTIONS_SCREEN_RENDER_QUALITY_LEVEL", ())) # Label
tab.setControlFlag("GraphicsQualityLabel", "CF_LABEL_DEFAULTSIZE")
szDropdownDesc = "RenderQualityDropdownBox"
aszDropdownElements = (localText.getText("TXT_KEY_SEALEVEL_HIGH", ()), localText.getText("TXT_KEY_SEALEVEL_MEDIUM", ()), localText.getText("TXT_KEY_SEALEVEL_LOW", ()))
szCallbackFunction = "handleRenderQualityDropdownBoxInput"
szWidgetName = self.szRenderQualityDropdownBoxName = "RenderQualityDropdownBox"
iInitialSelection = UserProfile.getRenderQualityLevel()
tab.attachDropDown(vbox2, szWidgetName, szDropdownDesc, aszDropdownElements, self.callbackIFace, szCallbackFunction, szWidgetName, iInitialSelection)

# Globe view rendering level
tab.attachLabel(vbox1, "GlobeViewLabel", localText.getText("TXT_KEY_OPTIONS_SCREEN_GLOBE", ())) # Label
tab.setControlFlag("GlobeViewLabel", "CF_LABEL_DEFAULTSIZE")

szDropdownDesc = "GlobeViewDropdownBox"
aszDropdownElements = (localText.getText("TXT_KEY_SEALEVEL_HIGH", ()), localText.getText("TXT_KEY_SEALEVEL_MEDIUM", ()), localText.getText("TXT_KEY_SEALEVEL_LOW", ()))
szCallbackFunction = "handleGlobeViewDropdownBoxInput"
szWidgetName = self.szGlobeViewDropdownBoxName = "GlobeViewDropdownBox"
iInitialSelection = UserProfile.getGlobeViewRenderLevel()
tab.attachDropDown(vbox2, szWidgetName, szDropdownDesc, aszDropdownElements, self.callbackIFace, szCallbackFunction, szWidgetName, iInitialSelection)
had to break down to 2 posts
 
####### GAME GRAPHICS

tab.attachVSeparator(hbox, "GfxSeparator")
tab.setLayoutFlag("GfxSeparator", "LAYOUT_LEFT")

vbox = "GfxPanelVBox"
tab.attachVBox(hbox, vbox)
tab.setLayoutFlag(vbox, "LAYOUT_SIZE_HEXPANDING")
tab.setLayoutFlag(vbox, "LAYOUT_SIZE_VEXPANDING")
tab.setLayoutFlag(vbox, "LAYOUT_SPACING_NONE")


# Checkboxes
for iOptionLoop in range(GraphicOptionTypes.NUM_GRAPHICOPTION_TYPES):
szOptionDesc = gc.getGraphicOptionsInfoByIndex(iOptionLoop).getDescription()
szCallbackFunction = "handleGraphicOptionsClicked"
szWidgetName = "GraphicOptionCheckbox_" + str(iOptionLoop)
bOptionOn = UserProfile.getGraphicOption(iOptionLoop)
tab.attachCheckBox(vbox, szWidgetName, szOptionDesc, self.callbackIFace, szCallbackFunction, szWidgetName, bOptionOn)

########## EXIT

tab.attachHSeparator("GraphicsVBox", "GraphicsExitSeparator")

tab.attachHBox("GraphicsVBox", "LowerHBox")
tab.setLayoutFlag("LowerHBox", "LAYOUT_HCENTER")

szOptionDesc = localText.getText("TXT_KEY_OPTIONS_RESET", ())
szCallbackFunction = "handleGraphicsReset"
szWidgetName = "GraphicOptionsResetButton"
tab.attachButton("LowerHBox", szWidgetName, szOptionDesc, self.callbackIFace, szCallbackFunction, szWidgetName)

szOptionDesc = localText.getText("TXT_KEY_PEDIA_SCREEN_EXIT", ())
szCallbackFunction = "handleExitButtonInput"
szWidgetName = "GraphicOptionsExitButton"
tab.attachButton("LowerHBox", szWidgetName, szOptionDesc, self.callbackIFace, szCallbackFunction, szWidgetName)

def drawAudioOptionsTab(self):

tab = self.pTabControl

tab.attachVBox("AudioForm", "AudioVBox")

tab.attachScrollPanel("AudioVBox", "AudioPanel")
tab.setLayoutFlag("AudioPanel", "LAYOUT_SIZE_HEXPANDING")
tab.setLayoutFlag("AudioPanel", "LAYOUT_SIZE_VEXPANDING")

tab.attachVBox("AudioPanel", "AudioPanelVBox")
tab.setLayoutFlag("AudioPanelHBox", "LAYOUT_SPACING_FORM")
tab.setLayoutFlag("AudioPanelHBox", "LAYOUT_SIZE_HEXPANDING")
tab.setLayoutFlag("AudioPanelHBox", "LAYOUT_SIZE_VEXPANDING")


######################### Create the 6 volume slider/checkboxes #########################

tab.attachVBox("AudioPanelVBox", "VolumeVBox")
tab.setLayoutFlag("VolumeVBox", "LAYOUT_SIZE_HEXPANDING")
tab.setLayoutFlag("VolumeVBox", "LAYOUT_SIZE_VEXPANDING")

#tab.attachLabel("VolumeVBox", "VolumeLabel", "VOLUME")

tab.attachPanel("VolumeVBox", "VolumePanel")
tab.setStyle("VolumePanel", "Panel_Tan15_Style")
tab.setLayoutFlag("VolumePanel", "LAYOUT_SIZE_HEXPANDING")
tab.setLayoutFlag("VolumePanel", "LAYOUT_SIZE_VEXPANDING")

tab.attachVBox("VolumePanel", "VolumePanelVBox")
tab.setLayoutFlag("VolumePanelVBox", "LAYOUT_SIZE_HEXPANDING")
tab.setLayoutFlag("VolumePanelVBox", "LAYOUT_SIZE_VEXPANDING")

tab.attachScrollPanel("VolumePanelVBox", "VolumeScrollPanel")
tab.setLayoutFlag("VolumeScrollPanel", "LAYOUT_SIZE_HEXPANDING")
tab.setLayoutFlag("VolumeScrollPanel", "LAYOUT_SIZE_VEXPANDING")

tab.attachHBox("VolumeScrollPanel", "VolumePanelHBox")
tab.setLayoutFlag("VolumePanelHBox", "LAYOUT_HEVENSTRETCH")
tab.setLayoutFlag("VolumePanelHBox", "LAYOUT_SIZE_VEXPANDING")

for iWidgetNum in range(6):

# SLIDER

if (iWidgetNum == 0): # Master Volume
szWidgetDesc = localText.getText("TXT_KEY_OPTIONS_MASTERVOLUME", ())
iInitialVal = 20-UserProfile.getMasterVolume()-1
bNoSoundTrue = UserProfile.isMasterNoSound()
elif (iWidgetNum == 1): # Music Volume
szWidgetDesc = localText.getText("TXT_KEY_OPTIONS_MUSICVOLUME", ())
iInitialVal = 20-UserProfile.getMusicVolume()-1
bNoSoundTrue = UserProfile.isMusicNoSound()
elif (iWidgetNum == 2): # Sound Effects Volume
szWidgetDesc = localText.getText("TXT_KEY_OPTIONS_EFFECTSVOLUME", ())
iInitialVal = 20-UserProfile.getSoundEffectsVolume()-1
bNoSoundTrue = UserProfile.isSoundEffectsNoSound()
elif (iWidgetNum == 3): # Speech Volume
szWidgetDesc = localText.getText("TXT_KEY_OPTIONS_SPEECHVOLUME", ())
iInitialVal = 20-UserProfile.getSpeechVolume()-1
bNoSoundTrue = UserProfile.isSpeechNoSound()
elif (iWidgetNum == 4): # Ambience Volume
szWidgetDesc = localText.getText("TXT_KEY_OPTIONS_AMBIENCEVOLUME", ())
iInitialVal = 20-UserProfile.getAmbienceVolume()-1
bNoSoundTrue = UserProfile.isAmbienceNoSound()
elif (iWidgetNum == 5): # Interface Volume
szWidgetDesc = localText.getText("TXT_KEY_OPTIONS_INTERFACEVOLUME", ())
iInitialVal = 20-UserProfile.getInterfaceVolume()-1
bNoSoundTrue = UserProfile.isInterfaceNoSound()

islider = str(iWidgetNum)

vbox = "VolumeSliderVBox"+islider
tab.attachVBox("VolumePanelHBox", vbox)

# Volume Slider
szSliderDesc = szWidgetDesc
szWidgetName = "VolumeSliderLabel"+islider
tab.attachLabel(vbox, szWidgetName, szSliderDesc)
tab.setLayoutFlag(szWidgetName, "LAYOUT_HCENTER")

szCallbackFunction = "handleVolumeSlidersInput"
szWidgetName = "VolumeSlider_" + str(iWidgetNum)
iMin = 0
iMax = UserProfile.getVolumeStops()
# iInitialVal set above
tab.attachVSlider(vbox, szWidgetName, self.callbackIFace, szCallbackFunction, szWidgetName, iMin, iMax, iInitialVal)
tab.setLayoutFlag(szWidgetName, "LAYOUT_SIZE_VEXPANDING")
tab.setControlFlag(szWidgetName, "CF_SLIDER_FILL_DOWN")

# CHECKBOX

szOptionDesc = localText.getText("TXT_KEY_OPTIONS_NO_SOUND", ())
szCallbackFunction = "handleVolumeCheckboxesInput"
szWidgetName = "VolumeNoSoundCheckbox_" + str(iWidgetNum)
# bNoSoundTrue set above
tab.attachCheckBox(vbox, szWidgetName, szOptionDesc, self.callbackIFace, szCallbackFunction, szWidgetName, bNoSoundTrue)
tab.setLayoutFlag(szWidgetName, "LAYOUT_HCENTER")


tab.attachHSeparator("VolumePanelVBox", "SoundSeparator")

tab.attachHBox("VolumePanelVBox", "SoundPanelHBox")
tab.setLayoutFlag("SoundPanelHBox", "LAYOUT_SIZE_HPREFERREDEXPANDING")
tab.setLayoutFlag("SoundPanelHBox", "LAYOUT_SIZE_VPREFERRED")


######################### Voice Config Section #########################

tab.attachVBox("SoundPanelHBox", "VoiceVBox")

# Capture Device Dropdown
tab.attachLabel("VoiceVBox", "VoiceCaptureLabel", localText.getText("TXT_KEY_OPTIONS_CAPTURE_DEVICE", ()))
szDropdownDesc = "CaptureDeviceDropdownBox"
aszDropdownElements = ()
for iCaptureDevice in range(UserProfile.getNumCaptureDevices()):
aszDropdownElements = aszDropdownElements + (unicode(UserProfile.getCaptureDeviceDesc(iCaptureDevice)),)
szCallbackFunction = "handleCaptureDeviceDropdownInput"
szWidgetName = "CaptureDeviceDropdownBox"
iInitialSelection = UserProfile.getCaptureDeviceIndex()
tab.attachDropDown("VoiceVBox", szWidgetName, szDropdownDesc, aszDropdownElements, self.callbackIFace, szCallbackFunction, szWidgetName, iInitialSelection)

# Capture Volume Slider
szSliderDesc = localText.getText("TXT_KEY_OPTIONS_CAPTUREVOLUME", ())
szCallbackFunction = "handleCaptureVolumeSliderInput"
szWidgetName = "CaptureVolumeSlider"
iMin = 0
iMax = UserProfile.getMaxCaptureVolume()
# iInitialVal = iMax - UserProfile.getCaptureVolume()
iInitialVal = UserProfile.getCaptureVolume()
tab.attachHSlider("VoiceVBox", szWidgetName, self.callbackIFace, szCallbackFunction, szWidgetName, iMin, iMax, iInitialVal)
tab.setControlFlag(szWidgetName, "CF_SLIDER_FILL_UP")

# Playback Device Dropdown
tab.attachLabel("VoiceVBox", "VoicePlaybackLabel", localText.getText("TXT_KEY_OPTIONS_PLAYBACK_DEVICE", ())) # Label
szDropdownDesc = "PlaybackDeviceDropdownBox"
aszDropdownElements = ()
for iPlaybackDevice in range(UserProfile.getNumPlaybackDevices()):
aszDropdownElements = aszDropdownElements + (unicode(UserProfile.getPlaybackDeviceDesc(iPlaybackDevice)),)
szCallbackFunction = "handlePlaybackDeviceDropdownInput"
szWidgetName = "PlaybackDeviceDropdownBox"
iInitialSelection = UserProfile.getPlaybackDeviceIndex()
tab.attachDropDown("VoiceVBox", szWidgetName, szDropdownDesc, aszDropdownElements, self.callbackIFace, szCallbackFunction, szWidgetName, iInitialSelection)

# Playback Volume Slider
szSliderDesc = localText.getText("TXT_KEY_OPTIONS_PLAYBACKVOLUME", ())
szCallbackFunction = "handlePlaybackVolumeSliderInput"
szWidgetName = "PlaybackVolumeSlider"
iMin = 0
iMax = UserProfile.getMaxPlaybackVolume()
# iInitialVal = iMax - UserProfile.getPlaybackVolume()
iInitialVal = UserProfile.getPlaybackVolume()
tab.attachHSlider("VoiceVBox", szWidgetName, self.callbackIFace, szCallbackFunction, szWidgetName, iMin, iMax, iInitialVal)
tab.setControlFlag(szWidgetName, "CF_SLIDER_FILL_UP")


tab.attachVBox("SoundPanelHBox", "SoundConfigVBox")

# Checkbox
szOptionDesc = localText.getText("TXT_KEY_OPTIONS_VOICE", ())
szCallbackFunction = "handleVoiceCheckboxInput"
self.szVoiceCheckboxName = "VoiceCheckbox"
szWidgetName = "VoiceChatCheckbox"
bUseVoice = UserProfile.useVoice()
tab.attachCheckBox("SoundConfigVBox", szWidgetName, szOptionDesc, self.callbackIFace, szCallbackFunction, szWidgetName, bUseVoice)

######################### Speaker Config Dropdown #########################

tab.attachLabel("SoundConfigVBox", "SpeakerConfigLabel", localText.getText("TXT_KEY_OPTIONS_SPEAKERS", ())) # Label
szDropdownDesc = "SpeakerConfigDropdownBox"
aszDropdownElements = ()
iInitialSelection = 0
for iSpeakerConfigLoop in range(16):
szActiveConfig = UserProfile.getSpeakerConfigFromList(iSpeakerConfigLoop)
aszDropdownElements = aszDropdownElements + (unicode(szActiveConfig),)
if (UserProfile.getSpeakerConfig() == szActiveConfig):
iInitialSelection = iSpeakerConfigLoop

szCallbackFunction = "handleSpeakerConfigDropdownInput"
szWidgetName = "SpeakerConfigDropdownBox"
# iInitialSelection set above
tab.attachDropDown("SoundConfigVBox", szWidgetName, szDropdownDesc, aszDropdownElements, self.callbackIFace, szCallbackFunction, szWidgetName, iInitialSelection)
tab.setLayoutFlag(szWidgetName, "LAYOUT_SIZE_HFIXEDEXPANDING")
tab.setLayoutFlag(szWidgetName, "LAYOUT_LEFT")

######################### Custom Audio Path #########################

# Checkbox
szOptionDesc = localText.getText("TXT_KEY_OPTIONS_CUSTOM_MUSIC", ())
szCallbackFunction = "handleCustomMusicPathCheckboxInput"
self.szCustomMusicCheckboxName = "CustomMusicPathCheckbox"
szWidgetName = CvUtil.convertToStr(self.szCustomMusicCheckboxName)
bUseCustomMusicPath = false
if (UserProfile.getMusicPath() != ""):
bUseCustomMusicPath = true
tab.attachCheckBox("SoundConfigVBox", szWidgetName, szOptionDesc, self.callbackIFace, szCallbackFunction, szWidgetName, bUseCustomMusicPath)

tab.attachHBox("SoundConfigVBox", "AudioPathHBox")
tab.setLayoutFlag("AudioPathHBox", "LAYOUT_SIZE_HFIXEDEXPANDING")

# Browse Button
szOptionDesc = localText.getText("TXT_KEY_OPTIONS_BROWSE", ())
szCallbackFunction = "handleCustomMusicPathButtonInput"
szWidgetName = "CustomMusicPathButton"
tab.attachButton("AudioPathHBox", szWidgetName, szOptionDesc, self.callbackIFace, szCallbackFunction, szWidgetName)

# Edit Box
szEditBoxDesc = ""
if (UserProfile.getMusicPath() != ""):
szEditBoxDesc = unicode(UserProfile.getMusicPath())
szWidgetName = "CustomMusicEditBox"
szCallbackFunction = "DummyCallback"
tab.attachEdit("AudioPathHBox", szWidgetName, szEditBoxDesc, self.callbackIFace, szCallbackFunction, szWidgetName)

########## EXIT

tab.attachHSeparator("AudioVBox", "AudioExitSeparator")

tab.attachHBox("AudioVBox", "LowerHBox")
tab.setLayoutFlag("LowerHBox", "LAYOUT_HCENTER")

szOptionDesc = localText.getText("TXT_KEY_OPTIONS_RESET", ())
szCallbackFunction = "handleAudioReset"
szWidgetName = "AudioOptionsResetButton"
tab.attachButton("LowerHBox", szWidgetName, szOptionDesc, self.callbackIFace, szCallbackFunction, szWidgetName)

szOptionDesc = localText.getText("TXT_KEY_PEDIA_SCREEN_EXIT", ())
szCallbackFunction = "handleExitButtonInput"
szWidgetName = "AudioOptionsExitButton"
tab.attachButton("LowerHBox", szWidgetName, szOptionDesc, self.callbackIFace, szCallbackFunction, szWidgetName)
tab.setLayoutFlag(szWidgetName, "LAYOUT_HCENTER")


def drawOtherTab(self):

tab = self.pTabControl

tab.attachVBox("OtherForm", "OtherVBox")

tab.attachScrollPanel("OtherVBox", "OtherPanel")
tab.setLayoutFlag("OtherPanel", "LAYOUT_SIZE_HEXPANDING")
tab.setLayoutFlag("OtherPanel", "LAYOUT_SIZE_VEXPANDING")

tab.attachHBox("OtherPanel", "OtherPanelHBox")
tab.setLayoutFlag("OtherPanelHBox", "LAYOUT_SPACING_INNERFORM")
tab.setLayoutFlag("OtherPanelHBox", "LAYOUT_SIZE_HEXPANDING")


########### CLOCK

tab.attachVBox("OtherPanelHBox", "ClockVBox")
tab.setLayoutFlag("ClockVBox", "LAYOUT_SIZE_HEXPANDING")
tab.setLayoutFlag("ClockVBox", "LAYOUT_SIZE_VEXPANDING")

tab.attachLabel("ClockVBox", "ClockLabel", localText.getText("TXT_KEY_OPTIONS_CLOCK", ()).upper() )

tab.attachPanel("ClockVBox", "ClockPanel")
tab.setStyle("ClockPanel", "Panel_Tan15_Style")
tab.setLayoutFlag("ClockPanel", "LAYOUT_SIZE_HPREFERREDEXPANDING")
tab.setLayoutFlag("ClockPanel", "LAYOUT_SIZE_VPREFERREDEXPANDING")

tab.attachVBox("ClockPanel", "ClockPanelVBox")
tab.setLayoutFlag("ClockPanelVBox", "LAYOUT_SIZE_HPREFERREDEXPANDING")
tab.setLayoutFlag("ClockPanelVBox", "LAYOUT_SIZE_VPREFERREDEXPANDING")

# Clock On Checkbox
szOptionDesc = localText.getText("TXT_KEY_OPTIONS_CLOCK_ON", ())
szCallbackFunction = "handleClockOnCheckboxInput"
szWidgetName = "ClockOnCheckbox"
bClockOn = UserProfile.isClockOn()
tab.attachCheckBox("ClockPanelVBox", szWidgetName, szOptionDesc, self.callbackIFace, szCallbackFunction, szWidgetName, bClockOn)

# 24 Hour Clock Checkbox
szOptionDesc = localText.getText("TXT_KEY_OPTIONS_24CLOCK", ())
szCallbackFunction = "handle24HourClockCheckboxInput"
szWidgetName = "24HourClockCheckbox"
b24HourClock = UserProfile.is24Hours()
tab.attachCheckBox("ClockPanelVBox", szWidgetName, szOptionDesc, self.callbackIFace, szCallbackFunction, szWidgetName, b24HourClock)

# Edit Box Hours
tab.attachLabel("ClockPanelVBox", "HoursLabel", localText.getText("TXT_KEY_OPTIONS_HOURS", ())) # Label
szEditBoxDesc = str(getAlarmHourLeft())
szCallbackFunction = "DummyCallback"
szWidgetName = "AlarmHourEditBox"
tab.attachEdit("ClockPanelVBox", szWidgetName, szEditBoxDesc, self.callbackIFace, szCallbackFunction, szWidgetName)

# Edit Box Mins
tab.attachLabel("ClockPanelVBox", "MinsLabel", localText.getText("TXT_KEY_OPTIONS_MINS", ())) # Label
szEditBoxDesc = str(getAlarmMinLeft())
szCallbackFunction = "DummyCallback"
szWidgetName = "AlarmMinEditBox"
tab.attachEdit("ClockPanelVBox", szWidgetName, szEditBoxDesc, self.callbackIFace, szCallbackFunction, szWidgetName)

# Alarm On Checkbox
szOptionDesc = localText.getText("TXT_KEY_OPTIONS_ALARMON", ())
szCallbackFunction = "handleAlarmOnCheckboxInput"
szWidgetName = "AlarmOnCheckbox"
bAlarmOn = isAlarmOn()
tab.attachCheckBox("ClockPanelVBox", szWidgetName, szOptionDesc, self.callbackIFace, szCallbackFunction, szWidgetName, bAlarmOn)


########### PROFILE

UserProfile.loadProfileFileNames()

tab.attachVBox("OtherPanelHBox", "ProfileVBox")
tab.setLayoutFlag("ProfileVBox", "LAYOUT_SIZE_HEXPANDING")
tab.setLayoutFlag("ProfileVBox", "LAYOUT_SIZE_VEXPANDING")

tab.attachLabel("ProfileVBox", "ProfileLabel", localText.getText("TXT_KEY_OPTIONS_SCREEN_PROFILES", ()).upper() )

tab.attachPanel("ProfileVBox", "ProfilePanel")
tab.setStyle("ProfilePanel", "Panel_Tan15_Style")
tab.setLayoutFlag("ProfilePanel", "LAYOUT_SIZE_HPREFERREDEXPANDING")
tab.setLayoutFlag("ProfilePanel", "LAYOUT_SIZE_VPREFERREDEXPANDING")

tab.attachVBox("ProfilePanel", "ProfilePanelVBox")
tab.setLayoutFlag("ProfilePanelVBox", "LAYOUT_SIZE_HPREFERREDEXPANDING")
tab.setLayoutFlag("ProfilePanelVBox", "LAYOUT_SIZE_VPREFERREDEXPANDING")


# Profiles Dropdown

tab.attachLabel("ProfilePanelVBox", "ProfileComboLabel", localText.getText("TXT_KEY_OPTIONS_SCREEN_PROFILES", ()))

szDropdownDesc = "ProfilesDropdownBox"
aszDropdownElements = ()
iInitialSelection = 0
for iProfileLoop in range(UserProfile.getNumProfileFiles()):
szProfileFileName = UserProfile.getProfileFileName(iProfileLoop)

# Cut off file path and extension
szProfile = szProfileFileName[szProfileFileName.find("PROFILES\\")+9:-4]

aszDropdownElements = aszDropdownElements + (szProfile,)

if (UserProfile.getProfileName() == szProfile):
iInitialSelection = iProfileLoop

szCallbackFunction = "handleProfilesDropdownInput"
szWidgetName = "ProfilesDropdownBox"
# iInitialSelection set above
tab.attachDropDown("ProfilePanelVBox",szWidgetName,szDropdownDesc, aszDropdownElements, self.callbackIFace, szCallbackFunction, szWidgetName, iInitialSelection)

# Edit Box ProfileName
tab.attachLabel("ProfilePanelVBox","ProfilesName",localText.getText("TXT_KEY_OPTIONS_SCREEN_PROFILE_NAME", ())) # Label


#szCallbackIFace = ""
szEditBoxDesc = UserProfile.getProfileName()
szCallbackFunction = "DummyCallback"
szWidgetName = "ProfileNameEditBox"
szWideEditBoxDesc = CvUtil.convertToUnicode(szEditBoxDesc)
tab.attachEdit("ProfilePanelVBox", szWidgetName, szWideEditBoxDesc, self.callbackIFace, szCallbackFunction, szWidgetName)

# New Profile Button
szOptionDesc = localText.getText("TXT_KEY_OPTIONS_NEW_PROFILE", ())
szCallbackFunction = "handleNewProfileButtonInput"
szWidgetName = "NewProfileButton"
tab.attachButton("ProfilePanelVBox", szWidgetName, szOptionDesc, self.callbackIFace, szCallbackFunction, szWidgetName)

# Delete Profile Button
szOptionDesc = localText.getText("TXT_KEY_OPTIONS_DELETE_PROFILE", ())
szCallbackFunction = "handleDeleteProfileButtonInput"
szWidgetName = "DeleteProfileButton"
tab.attachButton("ProfilePanelVBox", szWidgetName, szOptionDesc, self.callbackIFace, szCallbackFunction, szWidgetName)
mmmmm why the forums says message is too short?
 
########## NETWORKING

tab.attachVBox("OtherPanelHBox", "NetVBox")
tab.setLayoutFlag("NetVBox", "LAYOUT_SIZE_HEXPANDING")
tab.setLayoutFlag("NetVBox", "LAYOUT_SIZE_VEXPANDING")

tab.attachLabel("NetVBox", "NetLabel", localText.getText("TXT_KEY_OPTIONS_NETWORK", ()).upper() )

tab.attachPanel("NetVBox", "NetPanel")
tab.setStyle("NetPanel", "Panel_Tan15_Style")
tab.setLayoutFlag("NetPanel", "LAYOUT_SIZE_HPREFERREDEXPANDING")
tab.setLayoutFlag("NetPanel", "LAYOUT_SIZE_VPREFERREDEXPANDING")

tab.attachVBox("NetPanel", "NetPanelVBox")
tab.setLayoutFlag("NetPanelVBox", "LAYOUT_SIZE_HPREFERREDEXPANDING")
tab.setLayoutFlag("NetPanelVBox", "LAYOUT_SIZE_VPREFERREDEXPANDING")

# Radio Buttons
tab.attachLabel("NetPanelVBox", "NetBandwidthLabel", localText.getText("TXT_KEY_OPTIONS_BANDWIDTH_DESC", ()) )

bIsModem = gc.getGame().isModem()
szCallbackFunction = "handleBroadbandSelected"
szWidgetName = "BroadbandSelection"
szWidgetLbl = localText.getText("TXT_KEY_OPTIONS_BROADBAND_LBL", ())
tab.attachRadioButton("NetPanelVBox", szWidgetName, szWidgetLbl, self.callbackIFace, szCallbackFunction, str(szWidgetName), (not bIsModem))

szCallbackFunction = "handleModemSelected"
szWidgetName = "ModemSelection"
szWidgetLbl = localText.getText("TXT_KEY_OPTIONS_MODEM_LBL", ())
tab.attachRadioButton("NetPanelVBox", szWidgetName, szWidgetLbl, self.callbackIFace, szCallbackFunction, str(szWidgetName), bIsModem)


########## EXIT

tab.attachHSeparator("OtherVBox", "OtherExitSeparator")

tab.attachHBox("OtherVBox", "LowerHBox")
tab.setLayoutFlag("LowerHBox", "LAYOUT_HCENTER")

szOptionDesc = localText.getText("TXT_KEY_OPTIONS_RESET", ())
szCallbackFunction = "handleOtherReset"
szWidgetName = "OtherOptionsResetButton"
tab.attachButton("LowerHBox", szWidgetName, szOptionDesc, self.callbackIFace, szCallbackFunction, szWidgetName)

szOptionDesc = localText.getText("TXT_KEY_PEDIA_SCREEN_EXIT", ())
szCallbackFunction = "handleExitButtonInput"
szWidgetName = "OtherOptionsExitButton"
tab.attachButton("LowerHBox", szWidgetName, szOptionDesc, self.callbackIFace, szCallbackFunction, szWidgetName)
tab.setLayoutFlag(szWidgetName, "LAYOUT_HCENTER")
keep saying message is too short, then say u cant post more than 20k character
 
Back
Top Bottom