aboutsummaryrefslogtreecommitdiff
path: root/builtin/mainmenu
Commit message (Expand)AuthorAge
...
* Tidy up generate_from_settingtypes.lua a bit.Tim2016-08-20
* Move generation from settingtypes out of dlg_settings_advancedTim2016-08-20
* Main menu, lua_api.txt: Fix mod/texture pack screenshot size issuesWuzzy2016-07-27
* Android: Re-add button to remove singleplayer worldest312016-05-14
* Mainmenu: don't show change keys dialog on androidest312016-05-13
* Fix #4111 ("Provided world path doesn't exist" if choosing singleplayer on fi...Rui2016-05-13
* Update credits tabest312016-05-09
* Mainmenu: Remove space under mod listRui2016-05-01
* Android menu: Unified serverlistkilbith2016-04-28
* Mainmenu: Standardize the menu button order and sizesSmallJoker2016-04-28
* Fix mainmenu code downloading the public serverlist twice.Ekdohibs2016-04-22
* Textures: Replace menu background fallback dirt_bg.png with empty sky textureparamat2016-04-21
* Mainmenu: Code cleaningkilbith2016-04-20
* Mainmenu: Unify favorite servers with main serverlistkilbith2016-04-20
* Mainmenu: Still support favorites if send_pre_v25_init is disabledest312016-04-15
* mainmenu: Tidy up logic in is_server_protocol_compat() (#3997)SmallJoker2016-04-15
* Mainmenu: Refactor tab UI codeRui9142016-04-08
* Mainmenu: Move description.txt textbox downRui9142016-03-31
* Credits: Make that easy to add/removeRui2016-03-24
* Add option to not send pre v25 init packetest312016-03-15
* Settings Tab: Regroup dropdown datas in tablesJean-Patrick Guerrero2016-03-06
* Faster insertion into tableRui9142016-03-06
* Update settings tab + some misc. clean-upJean-Patrick Guerrero2016-03-05
* Don't generate trailing spaces in minetest.conf.exampleest312016-02-27
* Restore simple settings tab and add advanced settings as dialogBlockMen2016-02-21
* Fix world config menu ignoring `name` in `mod.conf`.Diego Martinez2016-01-23
* Fix error message in settings tab overlapping 'save' buttonRogier2016-01-16
* Fix the checking of flags values in the settings tabRogier2016-01-10
* Improve parsing of setting types from settingtypes.txt for settings tabRogier2016-01-10
* Alphabetical sorting of texture packs in menu (fixes #3487)jeanpatrick.guerrero@gmail.com2015-12-26
* Settings tab: add v3f typeest312015-11-08
* minetest. to core.Rui9142015-10-31
* Fix parameter passing to gettext callPilzAdam2015-10-25
* Credits: Remove my nameRui2015-10-25
* Escape " in generated settings_translation_file.cppPilzAdam2015-10-25
* Fix setting commentsPilzAdam2015-10-24
* Don't allow games or mods to add secure. settingsPilzAdam2015-10-24
* Better gettext support for protocol version mismatch messagesest312015-10-24
* Improve Lua settings menuPilzAdam2015-10-24
* Display sane output for empty descriptionsest312015-10-18
* New settings tab contain all possible settingsPilzAdam2015-10-17
* Add viewing range GUI settingkilbith2015-10-06
* Minor tweaks handle_settings_buttonsRui9142015-09-14
* Change my emailRui9142015-09-03
* Credits tab: fix accidental merger of two contributorsest312015-08-31
* Use gettext to "None" of texture pack listRui9142015-08-25
* Remove some emails from credits tabkwolekr2015-08-19
* Update credits tabkwolekr2015-08-19
* Client: disable mmdb modstoreest312015-08-19
* Don't do formspec escaping twice for loading descriptionest312015-08-14
onst char *filename); // NOTE: Types of allowed_options are ignored. Returns success. bool parseCommandLine(int argc, char *argv[], std::map<std::string, ValueSpec> &allowed_options); bool parseConfigLines(std::istream &is, const std::string &end = ""); void writeLines(std::ostream &os, u32 tab_depth=0) const; SettingsParseEvent parseConfigObject(const std::string &line, const std::string &end, std::string &name, std::string &value); bool updateConfigObject(std::istream &is, std::ostream &os, const std::string &end, u32 tab_depth=0); static bool checkNameValid(const std::string &name); static bool checkValueValid(const std::string &value); static std::string sanitizeName(const std::string &name); static std::string sanitizeValue(const std::string &value); static std::string getMultiline(std::istream &is, size_t *num_lines=NULL); static void printEntry(std::ostream &os, const std::string &name, const SettingsEntry &entry, u32 tab_depth=0); /*********** * Getters * ***********/ const SettingsEntry &getEntry(const std::string &name) const; Settings *getGroup(const std::string &name) const; std::string get(const std::string &name) const; bool getBool(const std::string &name) const; u16 getU16(const std::string &name) const; s16 getS16(const std::string &name) const; s32 getS32(const std::string &name) const; u64 getU64(const std::string &name) const; float getFloat(const std::string &name) const; v2f getV2F(const std::string &name) const; v3f getV3F(const std::string &name) const; u32 getFlagStr(const std::string &name, const FlagDesc *flagdesc, u32 *flagmask) const; // N.B. if getStruct() is used to read a non-POD aggregate type, // the behavior is undefined. bool getStruct(const std::string &name, const std::string &format, void *out, size_t olen) const; bool getNoiseParams(const std::string &name, NoiseParams &np) const; bool getNoiseParamsFromValue(const std::string &name, NoiseParams &np) const; bool getNoiseParamsFromGroup(const std::string &name, NoiseParams &np) const; // return all keys used std::vector<std::string> getNames() const; bool exists(const std::string &name) const; /*************************************** * Getters that don't throw exceptions * ***************************************/ bool getEntryNoEx(const std::string &name, SettingsEntry &val) const; bool getGroupNoEx(const std::string &name, Settings *&val) const; bool getNoEx(const std::string &name, std::string &val) const; bool getFlag(const std::string &name) const; bool getU16NoEx(const std::string &name, u16 &val) const; bool getS16NoEx(const std::string &name, s16 &val) const; bool getS32NoEx(const std::string &name, s32 &val) const; bool getU64NoEx(const std::string &name, u64 &val) const; bool getFloatNoEx(const std::string &name, float &val) const; bool getV2FNoEx(const std::string &name, v2f &val) const; bool getV3FNoEx(const std::string &name, v3f &val) const; // N.B. getFlagStrNoEx() does not set val, but merely modifies it. Thus, // val must be initialized before using getFlagStrNoEx(). The intention of // this is to simplify modifying a flags field from a default value. bool getFlagStrNoEx(const std::string &name, u32 &val, FlagDesc *flagdesc) const; /*********** * Setters * ***********/ // N.B. Groups not allocated with new must be set to NULL in the settings // tree before object destruction. bool setEntry(const std::string &name, const void *entry, bool set_group, bool set_default); bool set(const std::string &name, const std::string &value); bool setDefault(const std::string &name, const std::string &value); bool setGroup(const std::string &name, Settings *group); bool setGroupDefault(const std::string &name, Settings *group); bool setBool(const std::string &name, bool value); bool setS16(const std::string &name, s16 value); bool setU16(const std::string &name, u16 value); bool setS32(const std::string &name, s32 value); bool setU64(const std::string &name, u64 value); bool setFloat(const std::string &name, float value); bool setV2F(const std::string &name, v2f value); bool setV3F(const std::string &name, v3f value); bool setFlagStr(const std::string &name, u32 flags, const FlagDesc *flagdesc, u32 flagmask); bool setNoiseParams(const std::string &name, const NoiseParams &np, bool set_default=false); // N.B. if setStruct() is used to write a non-POD aggregate type, // the behavior is undefined. bool setStruct(const std::string &name, const std::string &format, void *value); // remove a setting bool remove(const std::string &name); void clear(); void clearDefaults(); void updateValue(const Settings &other, const std::string &name); void update(const Settings &other); void registerChangedCallback(std::string name, setting_changed_callback cbf, void *userdata = NULL); void deregisterChangedCallback(std::string name, setting_changed_callback cbf, void *userdata = NULL); private: void updateNoLock(const Settings &other); void clearNoLock(); void clearDefaultsNoLock(); void doCallbacks(std::string name); std::map<std::string, SettingsEntry> m_settings; std::map<std::string, SettingsEntry> m_defaults; std::map<std::string, std::vector<std::pair<setting_changed_callback,void*> > > m_callbacks; mutable JMutex m_callbackMutex; mutable JMutex m_mutex; // All methods that access m_settings/m_defaults directly should lock this. }; #endif